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

Post date: Oct 12, 2012 7:49:58 AM

Для точного измерения времени под Windows в Free PASCAL используется функция QueryPerformanceCounter. Ниже показан пример использования данной функции:

program Time;

uses

Windows;

var

start, finish, res: int64;

begin

QueryPerformanceFrequency(res); {Вызывается один раз в начале программы}

QueryPerformanceCounter(start);

{Участок кода, для которого будет замеряться время выполнения}

QueryPerformanceCounter(finish);

writeln('Затрачено ', (finish - start) / res, ' секунд' );

end.

В PASCAL ABC.NET необходимо использовать встроенный класс Stopwatch. Пример кода приведен ниже (код взят из примеров интегрированной среды разработки PABCWork.NET\Samples\NETLibraries\Other\).

program Time;

var

ts : System.TimeSpan;

// Sto9pwatch - класс высокоточного таймера (с точностью до 0.001 с)

begin

var stopWatch := new System.Diagnostics.Stopwatch;

stopWatch.Start;

{Участок кода, для которого будет замеряться время выполнения}

stopWatch.Stop;

ts := stopWatch.Elapsed;

writelnFormat('Время работы: {0:00}:{1:00}:{2:00}.{3:000}',ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);

end.