Суббота, 2024-Апрель-20, 5:04 PM
Приветствую Вас Гость | RSS
Поиск
Главная | Каталог статей | Регистрация | Вход
eXtruder's HQ
Форма входа
Меню сайта

Категории каталога
Видео [3]
Кодинг [2]
Посвящён программированию
Hardware [1]
Разного рода "железки", Equipment.

Друзья сайта

Наш опрос
Необходимо ли обновление aquapack?
Всего ответов: 2

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Кодинг

Пример реализации высокоточного таймера на Pascal.
Был сделан в целях замера производительности алгоритмов сортировки с использованием QueryPerformanceCounter и QueryPerformanceFrequency. Написано на Pascal.


function getTimeElapsed (t1: int64; t2: int64; freq: int64): string;
const
milli : extended = 1E-3;
micro : extended = 1E-6;
nano : extended = 1E-9;
pico : extended = 1E-12;
begin
if (freq * pico) >= 1 then
begin
Result := FloatToStr( (t2-t1) / (freq*pico) ) + ' пикосек.';
exit;
end;
if (freq * nano) >= 1 then
begin
Result := FloatToStr( (t2-t1) / (freq*nano) ) + ' наносек.';
exit;
end;
if (freq * micro) >= 1 then
begin
Result := FloatToStr( (t2-t1) / (freq*micro) ) + ' микросек.';
exit;
end;
if (freq * milli) >= 1 then
begin
Result := FloatToStr( (t2-t1) / (freq*milli) ) + ' миллисек.';
exit;
end;
end;

Далее делаем вызов, должно быть нечто вроде:
var
timer1, timer2, timerfreq: int64;
result: string;
begin
QueryPerformanceFrequency(timerfreq);
QueryPerformanceCounter(timer1);
// выполняем наш код
QueryPerformanceCounter(timer2);
result := getTimeElapsed(timer1, timer2, timerfreq);
end;

Категория: Кодинг | Добавил: extruder (2008-Март-28)
Просмотров: 2231 | Комментарии: 3 | Рейтинг: 0.0/0 |
Всего комментариев: 2
2 udfuiori  
0
Разошлю Вашу рекламу на 160000 форумов 50$.Ани лорак реклама
roma494(собачечка) mail(тут точка) ru

1 extruder  
0
Небольшое исправление.

Имя *:
Email *:
Код *:

Copyright ©2024 eXtruder