kcachegrind не показывает правильный процент для std :: future :: get call - PullRequest
0 голосов
/ 30 мая 2019

Я профилировал программу на c ++, которая использует std :: async, std :: future для вызова отдельных функций.

Скомпилировал код, используя gperftools / profiler.h.(Inserted ProfilerStart ("profile.prof"); сразу после main и ProfileStop () непосредственно перед возвратом)

Сгенерировал профиль с помощью

google-pprof --callgrind "program_path" profile.prof > prof.cg

Откройте формат callgrind с помощью

kcachegrind prof.cg

В профиле отображаются звонки с основной и тд.Единственная проблема заключается в том, что процент времени обработки для std :: future :: get является неправильным с огромным отрывом.

Если я использую,

google-pprof --gif "program_path" profile.prof > prof.gif

Я получаю правильные оценки времени обработки,

Любое исправление, заставляющее его работать в kcachegrind (настройки в google-pprof / kcachegrind gui и т. Д.).

...