Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.07;
Скачать: CL | DM;

Вниз

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

 
Вова   (2012-11-18 06:31) [0]

var
 t: longint;
begin
 t := GetTickCount;
 {....функция....}
 t := GetTickCount - t;
 ShowMessage("time " + IntTostr(t));
 
end;

не предлагать, т.к. она вроде как показывает с шагом 15 милисекунд или вообщем с каким то шагом, и вообщем за этот шаг все уже успевает отработать в обоих случаях и вообщем не могу понять, что работает быстрее и чем пользоваться, а чем нет )

обе процедуры дают либо 0, либо (редко) 15, либо 16. что наводит на мысль, что это не реальное время выполнения, а недостаточная разрешающая способность метода измерения.


 
Вова   (2012-11-18 06:35) [1]


function RDTSC: Int64; register;
asm
 rdtsc
end;


еще нашел вот это, но я не понял, как получить время исполнения этим....


 
Вова   (2012-11-18 06:38) [2]

и к томуже, я так понял она считает тики процессора, но не обязательно что при выполнении моего кода...т.е. если паралельно что то выполняется, то оно тож посчитается...


 
Вова   (2012-11-18 06:54) [3]


g := RDTSC;
{....function....}
g:= RDTSC -g;
ShowMessage("time " + IntTostr(g));


хм, попробовал вот так, наверное получилось, хотя цифры сильно разные раз от разу, но первые 2 разряда в основном стабильные, но иногда выскакивает число на порядки выше среднестатистического (видимо как раз из за паралельных процессов) а один раз выскочило на порядок ниже. Вообщем наверное таки сравнил, но не уверен ))

сравнивал scanline, вернее сканлайном получают указатель на начало картинки, а потом все обращения через указатели без сканлайн и QPixels - получилось вроде как что второе малость быстрее пашет, для примера приведение картинки в серый цвет....правдоподобно....


 
Dimka Maslov ©   (2012-11-18 10:43) [4]

Есть такая штука, как статистика (не та, которая не знает, сколько в стране стульев). Она нас учит, как проводить замеры и отсеивать недостоверные результаты.


 
Sha ©   (2012-11-18 11:05) [5]

как найти вес зёрнышка пшеницы, если 1000 зернышек весят 65г?


 
sniknik ©   (2012-11-18 11:17) [6]

> если паралельно что то выполняется, то оно тож посчитается...
при любом способе так.


 
AV ©   (2012-11-18 11:24) [7]


>  хотя цифры сильно разные раз от разу

потому что в это время система могла делать/не делать что угодно
одного раза не достаточно

намекают выполнить функцию 10000 раз и замерить время
результат - среднее значение
возможно, хватит и GetTickCount, т.к. точность уже не так важна


 
sniknik ©   (2012-11-18 11:25) [8]

> еще нашел вот это, но я не понял, как получить время исполнения этим....
это лучше не использовать... использовать QueryPerformanceCounter и QueryPerformanceFrequency, везде есть, нет проблем возможных с "этим", и с ними все можно получить, время тоже.


 
Sha ©   (2012-11-18 11:33) [9]

или что тяжелее, зернышко пшеницы или зернышко риса,
если 1000 зернышек пшеницы тяжелее 1000 зернышек риса?


 
oldman ©   (2012-11-18 11:38) [10]


> Dimka Maslov ©   (18.11.12 10:43) [4]


такая штука, как статистика подразумевает еще и отклонение (дельту)

а=6 плюс-минус 4
b=7 плюс-минус 2

что быстрее?


 
Sha ©   (2012-11-18 11:42) [11]

и фишку, которая может лечь в одной сборке и не лечь в другой


 
Anatoly Podgoretsky ©   (2012-11-18 12:45) [12]

t = t1 + t2


 
bems ©   (2012-11-18 13:36) [13]

если нужно отсеять моменты когда выполняется что-то паралельно, то GetThreadTimes + статистика


 
QAZ9   (2012-11-18 17:13) [14]


> не предлагать

там все нормально будет ,если не забыть поставить цикл на 1000000000 проходов



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

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

Наверх




Память: 0.49 MB
Время: 0.006 c
2-1352803524
Павел Калугин
2012-11-13 14:45
2013.07.07
Подскажите как правильно работать с библиотеками BPL


2-1353101914
vasa777
2012-11-17 01:38
2013.07.07
checkbox в memo


15-1361224437
Германн
2013-02-19 01:53
2013.07.07
Компьютер с Win7 ни с того ни с сего, вдруг, отказывается спать.


15-1361421713
Miha
2013-02-21 08:41
2013.07.07
пишу блокнот выдает ошибку This form of method call only allowed


2-1353170309
toropoff
2012-11-17 20:38
2013.07.07
{$DEFINE ..} как с ним работать...