Вниз
Скачать: CL | DM;

Время выполнения процесса   Найти похожие ветки 

← →
Mixali4   (2008-03-02 22:39) [0]

Как узнать сколько времени выполняется какой либо процесс (функция, цикл и т.д.)? Или как хотя бы определить системное время с точностью больше чем 10 в минус 3 секунды?
Спасибо


← →
Игорь Шевченко ©   (2008-03-02 23:33) [1]


> Как узнать сколько времени выполняется какой либо процесс


GetProcessTimes


> (функция, цикл и т.д.)?
> Или как хотя бы определить системное время с точностью больше
> чем 10 в минус 3 секунды?


Использовать команду rdtsc

function GetRdTsc: int64; assembler;
asm
 DW 310Fh
end;

var
 StartTsc, DiffTsc: int64;
...
begin
Перед началом процесса
 StartTsc := GetRdTsc;
 ..процесс..
 DiffTsc := GetRdTsc - StartTsc;
end;

Переменная Difftsc содержит количество тактов процессора, затраченных на время выполнения. Зная тактовую частоту процессора можно вычислить время выполнения.


← →
Anatoly Podgoretsky ©   (2008-03-03 00:17) [2]

В Д7 rdtsc доступно без кодирования константой.


← →
Игорь Шевченко ©   (2008-03-03 00:59) [3]

Anatoly Podgoretsky ©   (03.03.08 00:17) [2]

Виноват, исправляюсь:)

function GetRdtsc: int64; assembler;
asm
 rdtsc
end;


← →
Anatoly Podgoretsky ©   (2008-03-03 01:47) [4]

> Игорь Шевченко  (03.03.2008 00:59:03)  [3]

Ну и чтобы не связываться с ассемблером, использовать GetPerformanceCounter
чаще всего это почти одно и тоже. Только rdtsc может измерять более тонкие интервалы времени.


← →
Anatoly Podgoretsky ©   (2008-03-03 01:48) [5]

И еще одно маленькое замечание, слово assembler не нужно.


← →
Германн ©   (2008-03-03 02:35) [6]


> Anatoly Podgoretsky ©   (03.03.08 01:48) [5]
>
> И еще одно маленькое замечание, слово assembler не нужно.
>
>

Это уже удар ниже пояса! :(



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.007 c
2-1228767507
Platto
2008-12-08 23:18
2009.01.18
TComboBox


15-1227183443
XeON
2008-11-20 15:17
2009.01.18
Компонент "Таблица"


15-1227498126
Slider007
2008-11-24 06:42
2009.01.18
С днем рождения ! 24 ноября 2008 понедельник


15-1227066140
ArMellon
2008-11-19 06:42
2009.01.18
Нужен совет...


2-1228379830
b@v
2008-12-04 11:37
2009.01.18
База данных




   Наверх