Я хочу профилировать ЦП (пример, если возможно) с минимальным влиянием на производительность (поэтому похоже на -pg
GCC), двоичные файлы, скомпилированные с помощью Clang. Есть ли альтернатива, которая использует инструментарий кода или производит вывод, аналогичный gprof?
Альтернатива -pg с Clang?
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
Это все еще последнее слово спустя 6 лет?
- person kynan; 31.01.2017
@kynan: Донно, я перешел на Go.
- person Matt Joiner; 02.02.2017
gperftools перемещен на github.
- person Nick Desaulniers; 04.06.2017
clang имеет флаг компилятора + компоновщика
-fprofile-instr-generate
. Он не измеряет ЦП, но дает счетчики строк для каждой строки в выполняемом коде. Это может помочь вам найти код, который используется чаще всего, и поможет оптимизировать его. cmdlinelinux.blogspot.com/2018/04/
- person brokenfoot; 01.05.2018
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