Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1353238704
FroZko
2012-11-18 15:38
2013.07.07
Событие OnFilterRecord


1-1309152954
bestonix
2011-06-27 09:35
2013.07.07
Компонента TcxGrid в *.dll


3-1290592075
masterbloger
2010-11-24 12:47
2013.07.07
СУБД Cache + Delphi


15-1361424251
Savek
2013-02-21 09:24
2013.07.07
Кто сказал, что Delphi только для баз данных?


8-1232118558
KiLLiR
2009-01-16 18:09
2013.07.07
Масштабирование картинки в окне фиксированного размера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский