Re: gprof нагло врет ?!
On Tue, 8 Apr 2003, Sergei Olonichev wrote:
> Привет все!
>
> Я тут оптимизировал свою программу: получил выход 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()
> ...
>
Здравствуйте.
Как мне кажется, здесь проблема в интерпритации результатов.
Ваша функция вызывается 37195 за 2.03 сек., то есть
время ее выполнения ~10^-4 сек., а время наблюдения 0.01 сек.
Так что похоже, что оцениваемое время ее выполнения - просто неверно.
Подробнее смотрите: http://www.opennet.ru/docs/RUS/gprof/
раздел: Статистические неточности в выводе gprof
Успехов.
Юра.
Reply to: