[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: