LINUX.ORG.RU

Посоветуйте инструментальный профайлер/замерялку времени вызовов

 ,


1

8

Надо, что бы в отличии от множества гуглимых вариантов давал все замеры а не min/max/avg.

Для плюсов или сишечки. Без виртуализации. Многопоточный.

Забыл сказать - бесплатное для коммерческого использования :)

Если плюсовый, то для с++03.

★★★★★

также интересно
если не valgrund callgrind, то что еще ?
perf я не осилил, показывает что угодно, но не то что мне нужно

x905 ★★★★★ ()
Ответ на: комментарий от x905

perf я не осилил, показывает что угодно, но не то что мне нужно

perf и callgrind совсем разные инструменты, perf менее точен и гораздо капризнее, но область его применимости гораздо шире

annulen ★★★★★ ()
Ответ на: комментарий от AlexVR

Забыл сказать - бесплатное для коммерческого использования :)

pon4ik ★★★★★ ()
Ответ на: комментарий от x905

Кстати именно под pefr похожее решение я видел в процессе поиска, но второй раз найти не смог, прям такое ощущение, что показалось.

Там идея в том что бы прямо из кода системный вызов perf_event'a вызывать в нужных точках, а perf'om потом просто статистику собрать.

pon4ik ★★★★★ ()
Ответ на: комментарий от annulen

perf менее точен и гораздо капризнее, но область его применимости гораздо шире

ну если тюнить систему, то может да, читал, но не использовал
но для своей программы - где он может найти применение ?

x905 ★★★★★ ()
Ответ на: комментарий от pon4ik

Там идея в том что бы прямо из кода системный вызов perf_event'a вызывать в нужных точках

нужные точки еще найти надо, они бываю в неожиданный местах и не прогнозируемы
сомнительный метод

x905 ★★★★★ ()
Ответ на: комментарий от nikitos

AMD Codeanalyst

последний релиз 12 года, заброшен

x905 ★★★★★ ()

Есть OpenSource от AMD CodeXL

Investigate and improve the performance of applications, drivers and system software on >x86 CPUs. Find time critical hotspots and diagnose performance issues, precisely with >CPU sampling and call-graph profiling features.

Time-based profiling – supports any x86 CPU
Event-based profiling – supports AMD CPUs and APUs
Instruction-based sampling – supports AMD CPUs and APUs

kidoz ()
Ответ на: комментарий от kidoz

О, спасибо, надо посмотреть на него, выглядит монструозно по описанию и сайт в духе amd, всё красное нифига не понятно :)

Не подскажешь, где лицензию глянуть? На гитхабе всё есть :)

pon4ik ★★★★★ ()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от kidoz

Пока я вижу, что он сэмплерный(на первый взгляд). А мне нужна статистика по временам выполнения участков кода.

Подскажешь гуда глянуть?

pon4ik ★★★★★ ()
Ответ на: комментарий от x905

но для своей программы - где он может найти применение ?

Пример 1: если программа в бою начала тормозить, и тебе надо найти причину, для валгринда потребуется перезапуск, после которого придется заново пытаться восрпоизвести проблему

Пример 2: замедление работы в 20-раз в валгринде делает программу неработоспособной, или ее поведение очень сильно отличается от целевого. Допустим, ты профилируешь браузер или видеоплеер

annulen ★★★★★ ()
Ответ на: комментарий от pon4ik

Я для собственных проектов пробовал использовать RotateRight Zoom. К сожалению, он помер давным давно, разработчик обанкротился и сейчас на сайтике всего 5 ссылок: на виндовую, макосевую и три линукс версии(x86, x86_64, ARMv7).

Я думаю, уже всем всё равно, коммерчески ли он используется или всё-таки нет.

Модуль ядра для него находится в опенсорсе(и для Linux 4.8 он компилировался успешно), сам же профайлер, естественно, закрытый.

Вышеперечисленных проблем валгринда у него нет, ибо профилирует на уровне ядра. Одно но: в 64-битной версии не может отслеживать 32-битный процесс, есть только вариант отслеживать всю систему(что немного оверхед, но тоже можно пользоваться).

a1batross ★★★★★ ()
Последнее исправление: a1batross (всего исправлений: 2)
Ответ на: комментарий от annulen

хм, надо попробовать
например начну часто (через qtimer) вызывать чтото бесполезное (цикл) - тогда я увижу свой тормозящий слот или вызовы системной либы ?
у меня почемуто не получалось нормально debug информацию подцепить к perf, а тотже valgrind все видит ок

или из недавнего зависание (ожидание) гдето внутрях pulseaudio, пришлось ронять программу чтобы по корке увидеть стек

x905 ★★★★★ ()
Ответ на: комментарий от a1batross

Судя по описанию оно работает по тому же принципу что oprofile?

pon4ik ★★★★★ ()
Ответ на: комментарий от Laz

Интересная штука, очень похоже на то, что я ищу.

pon4ik ★★★★★ ()
Ответ на: комментарий от Laz

Не нашёл у них на сайте - инфы о размере оверхеда к сожалению.

Пишут что маленький, но для некоторых и 1ms это небольшой.

pon4ik ★★★★★ ()
Ответ на: комментарий от annulen

попробовал perf top - может показать live «затык» в программе, что неплохо
но не умеет потоки, что жаль

x905 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.