Форум: "Начинающим";
Текущий архив: 2013.07.07;
Скачать: [xml.tar.bz2];
Внизкак сравнить время выполнения 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c