Профилирование производительности на Linux

Начальный уровень

  • Уведомление об Изменении Свойства (INotifyPropertyChange и ObservableCollection)
  • Середина смешения/сидра ResourceDictionary
  • UserControls

Уровня

  • анимации и работа с архивами
  • Развертывание ClickOnce

Senior

  • WPF, 3D
  • Различия между Silverlight 2 и производительностью WPF
  • MVVM/MVP
  • WPF, настраивающейся
  • Пиксельные шейдеры
12
задан Will 9 December 2009 в 16:43
поделиться

8 ответов

Я рекомендую делать снимки стека, для которых полезно использовать pstack . Вот еще некоторая информация:

  1. Комментарии к gprof .

  2. Как работают стекшоты.

  3. Подробный пример.

  4. Очень краткое объяснение.

Если хотите чтобы потратить деньги, Zoom выглядит неплохим инструментом.

5
ответ дан 2 December 2019 в 19:54
поделиться

Для повышения производительности вы можете попробовать Callgrind, инструмент Valgrind. Вот хорошая статья , демонстрирующая его в действии .

4
ответ дан 2 December 2019 в 19:54
поделиться

Канонический пример инструмента полного профилирования системы (для Solaris, OS X, FreeBSD) - это DTrace . Но он еще не полностью доступен для Linux (вы можете попробовать здесь , но этот сайт для меня в данный момент не работает, и я сам не пробовал). Существует множество инструментов в разной степени полезности для выполнения полного профилирования системы и профилирования ядра в Linux.

Вы можете рассмотреть возможность изучения:

2
ответ дан 2 December 2019 в 19:54
поделиться

Скомпилируйте с помощью -pg, запустите программу, а затем используйте gprof

Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информация о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.

Подробнее см. man gprof .

а затем используйте gprof

. Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информацию о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.

Подробнее см. man gprof .

а затем используйте gprof

. Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информацию о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.

Подробнее см. man gprof .

1
ответ дан 2 December 2019 в 19:54
поделиться

профиль может вас заинтересовать. В Ubuntu должны быть все необходимые пакеты.

1
ответ дан 2 December 2019 в 19:54
поделиться

Если вы можете перенести свое приложение на freeBSD, OS X или Solaris, вы можете использовать dtrace, хотя dtrace ориентирован на аналитиков инструмент - то есть вам нужно управлять им - читайте: сценарий. Ничто другое не может дать вам необходимый уровень детализации; Dtrace не может просто профилировать задержки вызовов функций в пользовательском пространстве; он также может следовать за переключением контекста в ядро.

1
ответ дан 2 December 2019 в 19:54
поделиться

Описание использования -gp и gproff здесь http://www.ibm.com/developerworks/library/l-gnuprof.html

0
ответ дан 2 December 2019 в 19:54
поделиться

Как уже упоминалось, ответ FOSS состоит в том, чтобы выполнить сборку с -pg, а затем использовать gprof для анализа вывода. Если это продукт / проект, который оправдывает вложение денег, у меня также возникнет соблазн использовать профилировщик IBM / Rationals Quantify, так как это упрощает просмотр данных профилирования, детализацию до уровня строки или просмотр в 10000 футов 'level.

Конечно, может быть доступна программа просмотра для gprof, которая может делать то же самое, но мне ничего не известно.

0
ответ дан 2 December 2019 в 19:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: