У меня проблемы с профилированием времени выполнения моих приложений с помощью google-pperf-tools.
Я сделал следующее:
make -j4 PROFILER=google
CPUPROFILE=WARP.profile ./myprogram
google-pprof --text mypgrogram WARP.profile > profile.txt
okular profile.txt
Который дал мне вывод ниже.
Я могу распознать некоторые из моих функций, таких как mypgrogram::LOG::logger
,
Большая часть этого, однако, не имеет смысла.
Нет ничего похожего _end
в моем коде и функциях, которые я знаю из
файлы журнала, так как занимают много времени, вообще не отображаются.
Я знаю, что есть алгоритм, потребляющий примерно 80-90% времени выполнения, но
это не показано в выводе.
Проект был построен в режиме отладки, и, например, GDB может получить доступ ко всем именам функций, поэтому я считаю, что оптимизация кода здесь не должна быть проблемой.
Как я могу исправить вывод, чтобы увидеть реальное поведение программ?
Total: 10578 samples
9221 87.2% 87.2% 10556 99.8% _end
678 6.4% 93.6% 678 6.4% std::__cxx11::basic_string::npos
282 2.7% 96.3% 492 4.7% __TMC_END__
138 1.3% 97.6% 138 1.3% __emutls_register_common
75 0.7% 98.3% 162 1.5% features.512.0.69
48 0.5% 98.8% 66 0.6% versionString
39 0.4% 99.1% 98 0.9% __data_start
39 0.4% 99.5% 352 3.3% errortable
23 0.2% 99.7% 139 1.3% CPXPmembzfunc
15 0.1% 99.9% 17 0.2% ambiguousConverters
6 0.1% 99.9% 18 0.2% USE_SSE2
3 0.0% 100.0% 6 0.1% private_mem
3 0.0% 100.0% 5 0.0% thread_control_table_index
2 0.0% 100.0% 2 0.0% _Bocu1Data_44_cplex
0 0.0% 100.0% 2 0.0% 0x00007f33cdc9cb1f
0 0.0% 100.0% 20 0.2% 0x00007f33cdec3cbe
0 0.0% 100.0% 1 0.0% UNROLLED_LIMIT
0 0.0% 100.0% 1 0.0% _LMBCSData3_44_cplex
0 0.0% 100.0% 1 0.0% _LMBCSData5_44_cplex
0 0.0% 100.0% 1 0.0% _LMBCSData8_44_cplex
0 0.0% 100.0% 1 0.0% _LMBCSImpl8
0 0.0% 100.0% 1 0.0% internal_little2_encoding_ns
0 0.0% 100.0% 2 0.0% mypgrogram::LOG::logger
0 0.0% 100.0% 3 0.0% mypgrogram::XMLTags::LOCATION_FLEET_ID[abi:cxx11]
0 0.0% 100.0% 2 0.0% thrid_mmct
0 0.0% 100.0% 4 0.0% xercesc_3_1::XMLTransService::gMappingsRecognizer
Задача ещё не решена.
Других решений пока нет …