gprof библиотека - вопрос - PullRequest
       11

gprof библиотека - вопрос

5 голосов
/ 12 марта 2010

Мне нужно gprof библиотеки в нашей системе, чтобы проверить вызовы функций и посмотреть, сможем ли мы их оптимизировать. По сути, у меня есть

Исполняемый файл A, который использует общую библиотеку myLib.so

Я хочу gprof myLib.so. Когда я компилирую исходный код myLib.so, используя опцию -pg, он прекрасно создает файл .so.

Но перекомпиляция исполняемого файла A для этой библиотеки по какой-то причине не приводит к созданию файла * .gmon. Что должно быть сделано? Должен ли я связать myLib статически? Если так, пожалуйста, скажите мне, как. Я новичок, так что извините за мое невежество. Я учусь каждый день

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 марта 2010

Вы можете сделать лучше, чем gprof .

Вы можете использовать хороший профилировщик выборки, такой как RotateRight / Zoom , или вы можете попробовать эту технику . Также lsstack служит хорошо. pstack делает то же самое, но больше работы для вас.

0 голосов
/ 07 марта 2012

У меня та же проблема, но я думаю, что лучше всего создать небольшую программу на C / C ++, которая использует библиотеку с некоторыми тестовыми вызовами, скомпилировать ее с библиотекой с помощью -pg и профилировать ее.Таким образом, вы также хорошо изолируете проблемы профилирования библиотеки от других вещей.

Как указывают http://sourceware.org/binutils/docs/gprof/Implementation.html и https://stackoverflow.com/a/7290284/885650, вам нужно -pg при компоновке, поскольку это добавляетдополнительный код везде.

...