Измерение времени в 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.