Альтернатива -pg с Clang?

Я хочу профилировать ЦП (пример, если возможно) с минимальным влиянием на производительность (поэтому похоже на -pg GCC), двоичные файлы, скомпилированные с помощью Clang. Есть ли альтернатива, которая использует инструментарий кода или производит вывод, аналогичный gprof?


person Matt Joiner    schedule 22.09.2010    source источник
comment
Вам, наверное, лучше спросить об этом в списке разработчиков clang, не так ли?   -  person Jens Gustedt    schedule 22.09.2010
comment
Вы действительно хотите, чтобы результат был похож на gprof?   -  person Mike Dunlavey    schedule 22.09.2010
comment
Да, почему бы не? Это ясно и всеобъемлюще. Я так и не нашел подходящей альтернативы, valgrind подходит ближе всего.   -  person Matt Joiner    schedule 23.09.2010
comment
На этих страницах полно людей, пытающихся разобраться в выводе gprof. 1) Он не учитывает заблокированное время, как и IO. 2) Вам нужно приучить себя игнорировать собственное время, это почти бесполезно. 3) Аналогично для всех счетчиков вызовов и времени выполнения функций. 4) Нет информации на линейном уровне. 5) Граф вызовов красив и формально интересен, а также почти бесполезен. Уверяю вас, его можно использовать, как хорошую надежную машину, когда вам нужно пересечь реку.   -  person Mike Dunlavey    schedule 23.09.2010
comment
@Mike Dunlavey: я знаю 1, 2, а по 3 и 4 вы ошибаетесь. Что касается 5, как вы думаете, почему я использую C? gprof генерирует выходные данные с минимальным влиянием на производительность. Я безуспешно пытался найти альтернативу, которая, среди прочего, занимается блокировкой времени. gprof с его недостатками все же лучше.   -  person Matt Joiner    schedule 23.09.2010
comment
В качестве альтернативных инструментов вы можете рассмотреть Zoom или LTPof. Для пунктов выше рассмотрите пункты 6, 2, 3 этого: stackoverflow.com/questions/1777556/alternatives-to-gprof/, который также указывает на метод, на который я полагался в течение десятилетий, и подробный пример, когда большинство инструментов сегодня остались бы в пыли, особенно gprof и ему подобные.   -  person Mike Dunlavey    schedule 23.09.2010


Ответы (2)


Я получил хороший ответ на список рассылки Clang. Подводя итог, можно сказать, что использование Google Performance Tools было оптимальным.

person Matt Joiner    schedule 28.09.2010
comment
Это все еще последнее слово спустя 6 лет? - person kynan; 31.01.2017
comment
@kynan: Донно, я перешел на Go. - person Matt Joiner; 02.02.2017
comment
gperftools перемещен на github. - person Nick Desaulniers; 04.06.2017
comment
clang имеет флаг компилятора + компоновщика -fprofile-instr-generate . Он не измеряет ЦП, но дает счетчики строк для каждой строки в выполняемом коде. Это может помочь вам найти код, который используется чаще всего, и поможет оптимизировать его. cmdlinelinux.blogspot.com/2018/04/ - person brokenfoot; 01.05.2018
comment
Clang, кажется, принимает -pg, но не ссылается на неопределенную ссылку на mcount - person wingerse; 30.12.2018

https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-pg

теперь clang уже поддерживает -pg

person bluesky    schedule 12.07.2020