Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

Замерить время выполнения!   Найти похожие ветки 

 
emergenter   (2003-12-25 10:52) [0]

Подскажите пожалуйста как замерить время (в тиках или нсек или милисек или ) куска выполнения программы. Заранее спасибо.


 
Silver Alex   (2003-12-25 10:55) [1]

var
n: Cardinal;
begin
n:=GetTickCount;
...
Result:=GetTickCount-n;


 
mrcat   (2003-12-25 10:56) [2]

см. rdtsc


 
emergenter   (2003-12-25 10:56) [3]

большое спасибо!!


 
emergenter   (2003-12-25 10:57) [4]

так rdtsc - это в тактах!!!!


 
mrcat   (2003-12-25 10:59) [5]

~ 1/1600000000 - чем не наносекунды ? ;)


 
emergenter   (2003-12-25 11:01) [6]

Что-то такой функции нету
GetTickCount...


 
emergenter   (2003-12-25 11:02) [7]

mrcat ©
Так это на Асме надо! правильно?


 
Silver Alex   (2003-12-25 11:04) [8]


> Что-то такой функции нету
> GetTickCount...

в модуле Windows живет (в D7)


 
NoIdeaAboutName   (2003-12-25 11:06) [9]

"Что-то такой функции нету"

а ты подключи модуль mmsystem


 
emergenter   (2003-12-25 11:12) [10]

Я так понимаю результат в тиках??? а как перевести в наносекунды или в милисекунды??? Тик - это сколько?


 
Silver Alex   (2003-12-25 11:16) [11]

результат в милисекундах как раз


 
Anatoly Podgoretsky   (2003-12-25 11:17) [12]

emergenter © (25.12.03 11:12) [10]
Надо калибровать, измерив количество тактов за интервал, но это счетчик с самым максимальным разрешением в компьютере, к тому же он не зависит от загрузки системы, поскольку аппаратный.

Посмотри еще QueryPerformanceCounter


 
emergenter   (2003-12-25 11:20) [13]

я делаю так!!!
var
i : integer;
n1 : Cardinal;
n2 : Cardinal;

begin
n1:=GetTickCount();
for i:=0 to 1000 do
....моя функция, кот надо измерить...
n2:=GetTickCount()-n1;

end;

И что то вроде как нет то !!! Результаты могут быть
16, 390, 1640...
Поправьте если что не так...


 
MV   (2003-12-25 11:32) [14]

А если вместо GetTickCount использовать Now ?
Толку-то в наносекундах, если эти тики 60 раз в секунду происходят... И точнее - нельзя, хоть убейся.


 
Silver Alex   (2003-12-25 11:37) [15]


> MV (25.12.03 11:32) [14]
> А если вместо GetTickCount использовать Now ?

ну попробуй, потом расскажешь


 
Brahman   (2003-12-25 13:37) [16]

Выдернул.. думаю разберетесь.
Не учтены ньюансы, связанные с вызовом, но это второе..

function TtsvTimer.GetFactor:int64;
begin
fFactor := CPUClockFrequency div 1000;
Result := fFactor;
end;

function TtsvTimer.CPUClockFrequency: Int64;
begin
QueryPerformanceFrequency( Result );
end;

function TtsvTimer.GetTick: Int64;
var i : Int64;
begin
QueryPerformanceCounter (I);
Result := i - fElapseStart;
end;

// Measure time in [us]
function TtsvTimer.TimeElapseduS: LongWord;
begin
Result := (GetTick*1000) div fFactor;
end;

// Measure time in [ms]
function TtsvTimer.TimeElapsed: LongWord;
begin
Result := GetTick div fFactor;
end;

// Measure time in [s]
function TtsvTimer.TimeElapsedS: LongWord;
begin
Result := ((GetTick div fFactor) div 1000);
end;



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

Форум: "Основная";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
1-25300
Xtz
2003-12-22 22:22
2004.01.09
И Снова TreeView ,помогите разобратся млин уж неделю парюсь


14-25573
Alexander Vasjuk
2003-12-16 12:52
2004.01.09
Хакеры - санитары софта?


1-25395
WOLT_19
2003-12-24 18:41
2004.01.09
Запуск проги.


1-25403
Sirakuz
2003-12-24 18:13
2004.01.09
Поведение OwnerDrawVariable ListBox при докировании


4-25663
Davinchi
2003-11-05 16:25
2004.01.09
Кнопки управления окном (свернуть,развернуть,закрвть) у MDIChild





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский