Страница 1 из 1

Статистика времени выполнения процедур

СообщениеДобавлено: 19.12.2018 15:42:51
DropSoft
Показалось мне, что моя разросшаяся программа на лазарусе под Windows стала медленно работать. Добавил контроль времени исполнения некоторых процедур, нашел и исправил некоторые проблемы, стало работать в несколько раз быстрее. Проверял примерно так:
Код: Выделить всё
 
  QueryPerformanceFrequency(iCounterPerSec);//определили частоту счётчика
  QueryPerformanceCounter(T1); //засекли время начала операции

  MyFunction();

  QueryPerformanceCounter(T2); //засекли время окончания операции
  T3 := T2 - T1;
  Tsum := Tsum + T3;
  PrintLog(IntToStr(Trunc(T3 * 1000000 / iCounterPerSec)) + 'мкс,  суммарно: ' + IntToStr(Trunc(Tsum * 1000000 / iCounterPerSec))); // выводим в лог

И возник вопрос, а есть ли какие-то средства в Lazarus, чтобы измерить статистику, сколько какая процедура тратит времени на выполнение, не прибегая к подобным костылям?

Re: Статистика времени выполнения процедур

СообщениеДобавлено: 19.12.2018 16:32:48
zub

Re: Статистика времени выполнения процедур

СообщениеДобавлено: 19.12.2018 16:56:58
DropSoft
zub Огромное спасибо! Вроде то что надо.

Re: Статистика времени выполнения процедур

СообщениеДобавлено: 19.12.2018 17:19:53
zub
http://wiki.freepascal.org/LazProfiler небольшое описание