gprof нагло врет ?!
Привет все!
Я тут оптимизировал свою программу: получил выход gprof, переписал две
верхних функции и снова получил выход. Проблема в том, что они как
занимали почти 5% по времени так и занимают. Хотя после оптимизации
функция synt::SyntTokensSpliter::Clear()
_состоит_в_обнулении_3-х_счетчиков_ и в принципе не может занимать 2.03%
по времени от 441 секунды, т.е. почти 9 секунд.
Правда общее время работы сократилось с 457.57 до 441.09 сек., но почему
эти функции наверху?
В чем может быть проблема?
С уважением,
Сергей
P.S.
До оптимизации gprof показывал:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
2.36 10.80 10.80 37194 0.29 0.30
synt::SyntTokensSpliter::ReTokenize()
2.12 20.50 9.70 37195 0.26 0.26
synt::SyntTokensSpliter::Clear()
...
После оптимизации стал показывать:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
2.36 10.41 10.41 37194 0.28 0.29
synt::SyntTokensSpliter::ReTokenize()
2.03 19.36 8.95 37195 0.24 0.24
synt::SyntTokensSpliter::Clear()
...
Reply to: