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