Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.18;
Скачать: 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 вся ветка

Текущий архив: 2009.01.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-1205913105
Aleksandr
2008-03-19 10:51
2009.01.18
dll, получить события самого приложения


1-1206048897
User
2008-03-21 00:34
2009.01.18
параметезированные права доступа к контролам приложения


2-1228492011
dbgrid
2008-12-05 18:46
2009.01.18
Как определить на какой строке грида нах-ся курсор?


15-1227101960
Mozart
2008-11-19 16:39
2009.01.18
Русский перевод фильмов bbc зло?


15-1227012127
NoDt
2008-11-18 15:42
2009.01.18
Вывод пути через матрицу последовательности узлов Алгоритм Флойда