Неразборчивые имена в gprof
Я пытаюсь использовать gprof для профилирования программы, которую я написал, и получаю непонятные результаты. Большинство имен функций приходят как _abfcd96687bed377dcecdf193c89698
, Я считаю, что они исходят из сторонней библиотеки, с которой я ссылаюсь, для которой у меня нет исходного кода, поэтому я не могу перекомпилировать ее для профилирования.
Я хотел бы понять, откуда поступают эти функции, поскольку на одну из них приходится 17% моего времени работы, и я хотел бы посмотреть, смогу ли я сократить количество вызовов этой пока неизвестной функции.
1 ответ
Я смог определить, что рассматриваемые функции были частью сторонней библиотеки, использующей callgrind.
Сырье callgrind.out
Файл содержит список функций в программе. В это входит то, что функции вызываются как часть выполнения каждой функции.
Используя это, я смог отследить от рассматриваемых функций, пока не достиг функции, которая является частью библиотечного API.
Что касается цели оптимизации, функцию API, которая потребляет большую часть времени выполнения (>75%), нельзя вызывать меньше раз. Это затрудняет (хотя и не делает невозможным) поиск других горячих точек.