Инструменты профилирования в Visual Studio
- Алик Ким
- 2 июн. 2023 г.
- 2 мин. чтения
Обновлено: 5 авг. 2023 г.
почитал немного доки Майкрософта на эту тему.
https://learn.microsoft.com/en-us/visualstudio/profiling/?view=vs-2022 - ссылка на раздел документации.
тулзы в Performance profiler работают только не из-под дебаггера. могут и на релизе работать.
ну а которые в окне Diagnostics tools (которое само при дебаге открывается) - только из-под дебаггера
есть 2 подхода для подсчета времени активности методов:
1) Sampling - работает более быстро, менее точно: раз в какое то время анализируются текущие колл-стеки (ну и, я так понимаю, методы, фигурирующие там, считаются работающими в данный момент). Instrumentation - медленно, но точнее - реально фиксируется каждый вызов метода через внедрение ~логирующих вставок в код методов.
инструментация есть статическая (более старая, неудобная/геморная, изменения делаются в ~исполняемых файлах) и динамическая (доступна для Core, преобразования делаются уже в загруженных в памяти модулях(?))
для анализа проблем с памятью в Managed-среде больше подходит .net Object allocation tool (доступна только post-mortem). Memory Usage Tool - для определения утечек памяти (ближе к C++)
можно как то из командной строки запускать замер производительности (не стал смотреть особо)
чето там по Xaml можно отдельно замерять - не стал смотреть
dotnet-monitor - пишут, что утилита (консольная) для сбора информации о .net-приложениях на проде
вообще, есть целый набор таких утилит: dotnet-monitor, dotnet-trace, dotnet-counters
вот тут информация о них: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-monitor
с ними пока не разбирался, надо посмотреть, что такое, как соотносятся с описанными тут тулзами.
UPD: https://devblogs.microsoft.com/devops/searching-and-filtering-the-events-tab-of-the-diagnostic-tools-window/ - вроде, чувак разъясняет GUI профилировщика. сам не читал, тут себе сохраню на всякий случай
UPD2: недавно обнаружил, что комп стал безбожно тормозить иногда, что, прям, невозможно работать. накатал аж тикет в техподдержку - мож, корпоративный антивирус лютует. они там особо ничего не нашли.... но зато я (слава Господу!!!) вспомнил, что когда изучал вот эту тему профилирования - поставли одну галочку в настройках профилировщика. снял ее - и кааак же я был счастлив после этого!!!

будьте осторожны!
Comentarios