Измерение времени в Pascal

Post date: Oct 3, 2010 8:08:52 PM

Для точного измерения времени в ОС Windows используется функция QueryPerformanceCounter. Ниже приведён пример (для Free Pascal) использования этой функции.

program Time;
uses
   Windows;
var
   start, finish, res: int64;
begin
   QueryPerformanceFrequency(res); {Вызывается один раз в начале программы}
   QueryPerformanceCounter(start);  
   {Участок кода, у которого будет замеряться время выполнения}
   QueryPerformanceCounter(finish);
   writeln('Затрачено ', (finish - start) / res, ' секунд' );
end.

В PascalABC.Net наиболее простым способом измерения времени являются использование функции Milliseconds, которая возвращает количество миллисекунд прошедших с момента запуска программы. Пример использования ниже.

program Time;
var 
  start, finish: integer;
  i: longint;
  x: double;
begin
  start := Milliseconds;
  // Start of computation (example)
  for i := 1 to 1000000 do
    x := sin(x + i);
  // End of computation
  finish := Milliseconds;
  writeln('Execution time (ms): ', finish - start);
end.