Отправляет email-рассылки с помощью сервиса Sendsay
Открытая группа
25 участников
Администратор Legotckoi
Модератор ProgrammersBlog

Последние откомментированные темы:

20240416205935

←  Предыдущая тема Все темы Следующая тема →
пишет:

Инструменты профайлинга С++ кода

Краткое содержание интересного доклада с CoreHard Spring 2018: "Инструменты профайлинга С++ кода":

1:40 что такое профайлинг (профилирование) и какие проблемы с его помощью можно решить.

3:45 классификация профайлеров — тут же обозначается ряд проблем профилировщиков, обсусловленных типом профилирования;

10:00 gprof — консольный профайлер для Linux. Описаны основные недостатки, показано как его использовать;

13:30 gcov — работает также как gprof, но выводит информацию о строках кода (например "сколько раз была выполнена строка");

14:20 gprof2dot — скрипт на Python, который позволяет визуализировать результаты работы не только gprof, но и ряда других профайлеров. Приведены примеры использования;

17:00 gperftools — инструмент для профилирования "вручную". В отличии от gprof умеет профилировать многопоточный код;

19:00 valgrind — фреймворк для эмулирующей профилировки под Linux и MacOS. Содержит множество утилит, а также дополнительные инструменты для визуализации данных:

* cachegrid — для профилирования кэша (информация о кэш–промахах и т.п.);
* callgrid — строит граф вызовов и дает информацию о времени работы функций;
* memcheck и massif — профилирование памяти, дают информацию об утечках и аллокациях соответственно;
* DRD и Helgrid — инструменты для профилирования многопоточных приложений. Позволяют, например, найти взаимоблокировки.

25:40 Heaptrack — позволяет профилировать и визуализировать:

* динамику потребления памяти;
* количество утечек;
* распределение потребления памяти по функциям;
* строить flamegraph потребления ОЗУ (дальше в докладе рассказывается что такое flamegraph и как его читать);

29:05 Intel VTune Amlifier — проприетарный, но бесплатный профилировщик для программ на процессорах Intel (работает только на этих процессорах). Умеет профилировать кэш программ, branch prediction, встроенное GPU. С его помощью можно, например, узнать сколько чего выполнялось на каждом ядре. Красиво визуализирует результаты.

32:10 CodeXL и AMD μProf — аналогичные инструменты для процессоров AMD. Также, XCode + Instruments содержит инструменты для профилирования в MacOS и iOS. SimplePerf — профайлер для Android (встроен в Android Studio начиная с версии 3.1).

37:28 Кратко охарактеризованы другие профайлеры, которые не вошли в доклад. Приведены советы по профилированию (очевидные, но полезные), а также, «полезные ссылки» с комментариями.

Это интересно
0

11.02.2019
Пожаловаться Просмотров: 201  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены