IgProf (Ignominous Profiler) — простой и удобный инструмент для профилирования, набор консольных утилит для измерения использования памяти приложениями и сбора характеристик производительности.
Профилирование — сбор характеристик работы процессов, приложений или систем с целью их дальнейшей оптимизации. Используя профилирование можно определить как долго выполняются те или иные части приложения, как часто они выполняются и могут быть оптимизированы.
Профилировщик (Профайлер/Profiler) — специализированный инструмент для проведения анализа производительности и сбора характеристик во время выполнения процессов или приложений. Средства анализа чрезвычайно важны для понимания происходящих процессов, выявления неиспользуемых участков кода и многого другого.
IgProf для сбора характеристик не требует внесения никаких изменений в исследуемые приложения и не требуется никаких особых привилегий. Профилировщик быстро, легко и корректно обрабатывает динамически загружаемые разделяемые библиотеки, потоки и подпроцессы запускаемые приложением. Составляемые отчёты о производительности могут настраиваться с помощью фильтров и могут включать результаты любого количества профилирующих прогонов, что позволяет одновременно с изучением деталей видеть общую картину.
IgProf хорошо оптимизирован для работы с большими приложениями, поддерживается работа в трёх режимах, как профилировщик производительности, профилировщик памяти и в режиме инструментария. Полное представление о производительности и использованию памяти можно получить запустив исследуемое приложение дважды, по одному разу в каждом режиме профилирования. Режим инструментария можно использовать для точного измерения времени затраченного на выполнение той или иной функции, с точностью до нескольких наносекунд.
IgProf при профилировании производительности незначительно увеличивает время выполнения исследуемого приложения и добавят не менее 50Мб к использованию памяти. Объём дополнительно используемой памяти сильно зависит от шаблонов распределения памяти исследуемого приложения, чем меньше выделение и чем выше скорость, тем больший объём памяти используется. Для всех режимов профилирования могут создавать отчёты в ASCII или HTML формате (каждая строка вывода описывает один фрагмент информации), вывод сохраняется в простом текстовом файле или архиве (gzip или bzip2 формате).
Лицензия: GNU General Public License version 2.0 (GPLv2)