Я пытаюсь выяснить, где моя программа на С++ тратит свое время, используя gprof. Вот моя дилемма: если я компилирую с теми же настройками оптимизации, которые я использую для своей сборки релиза, почти все становится вложенным, и gprof говорит мне, бесполезно, что 90% моего времени проводится в основной рутине, где все было встроено. С другой стороны, если я компилирую с отключенной вставкой, программа работает на порядок медленнее.
Я хочу узнать, сколько процедур времени вызывается из моей основной подпрограммы, когда моя программа скомпилирована с включенной вставкой.
Я запускаю 64-разрядный Ubuntu 9.04 на четырехъядерном процессоре Intel. Я заглянул в google-perftools, но на x86_64 это плохо работает. Работа на 32-битной машине не является вариантом.
Есть ли у кого-нибудь предложения относительно того, как я могу более эффективно профилировать мое приложение, когда включена вставка?
Изменить: Вот некоторые пояснения к моей проблеме. Прошу прощения, если сначала не было ясно.
Я хочу найти, где время проводилось в моем приложении. Профилирование моей оптимизированной сборки привело к тому, что gprof сказал мне, что ~ 90% времени проводится в основном, где все было встроено. Я уже знал это перед профилированием!
Я хочу узнать, сколько времени выполняются встроенными функциями, желательно, не отключая оптимизацию или встраивание в мои варианты сборки. Приложение на порядок медленнее при профилировании с отключением вложения. Эта разница во времени исполнения является проблемой удобства, но также я не уверен, что профиль производительности программы, построенной с отключенной вставкой, будет сильно соответствовать профилю производительности программы, построенной с включенной встраиванием.
Короче: есть ли способ получить полезную информацию о профилировании на С++-программе без отключения оптимизации или вложения?