76 / 62 / 23
Регистрация: 11.07.2009
Сообщений: 730
|
|
1 | |
время работы алгоритма01.01.2012, 12:01. Показов 9121. Ответов 11
Метки g, gettickcount, queryperformancecounter, queryperformancefrequency, time, временной интервал, время, время выполнения, замерить, измерить, интервал, определить (Все метки)
Как посчитать? Так понимаю TTimer по частоте не подойдёт как минимум, да и просто неточен будет, если не предпологается параллельное программирование.
Задача вообщем - узнать за какое время выполняется участок кода.
0
|
|
01.01.2012, 12:01 | |
Ответы с готовыми решениями:
11
Время работы алгоритма на С++ и Делфи Время работы алгоритма сортировки Время работы программы (алгоритма) Время работы алгоритма сортировки |
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
||||||
01.01.2012, 12:11 | 2 | |||||
Просто берем системное время начала и конца, вычитаем и получаем результат, вроде функция
1
|
Puporev
|
01.01.2012, 12:26
#4
|
Не по теме: go, Зачем меня копировать? Это вроде твои слова?
0
|
go
|
01.01.2012, 12:38
#5
|
0
|
76 / 62 / 23
Регистрация: 11.07.2009
Сообщений: 730
|
|
01.01.2012, 13:23 [ТС] | 6 |
а как миллисекунды отсюда получить?
![]()
0
|
Тимуровец
445 / 285 / 50
Регистрация: 10.09.2009
Сообщений: 963
|
|
01.01.2012, 13:30 | 7 |
Это не очень удачное решение использовать Now для этих целей. Лучше взять GetTickCount.
0
|
13094 / 5875 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
01.01.2012, 16:00 | 10 | |||||
![]() Решение
1. Частота обновления данных в системных часах - около 1/25 секунды. Это означает, что если исследуемый процесс выполняется за время меньшее, чем 1/25 секунды, то его время выполнения с большой вероятностью будет определено как 0 (ноль).
--- 2. Частота обновления для таймера, показания которого читает функция GetTickCount() - около 10 миллисекунд. Этот таймер (счётчик) отсчитывает количество миллисекунд, прошедшее от момента запуска операционной системы Windows. --- 3. И самый точный таймер - это мультимедийный таймер - он считает такты микропроцессора. Задержка этого таймера по отношению к программе, которая с ним работает, определяется лишь скоростью чтения данных из его регистра. С помощью него можно даже замерить время, прошедшее между выполнением двух соседних команд в программе, без применения усреднения. ![]() Чтобы воспользоваться показаниями мультимедийного таймера используются две функции: QueryPerformanceFrequency() - замеряет тактовую частоту процессора. QueryPerformanceCounter() - читает показание мультимедийного таймера. --- В принципе, любой из этих таймеров можно применить для замера времени выполнения некоторого процесса. Если время выполнения процесса близко к интервалу обновления таймера - в этом случае следует применить усреднение. Т. е., надо организовать цикл на некоторое количество итераций - на 100, 1000 (иногда и больше). И в этом цикле запускать исследуемый процесс. После завершения цикла вычислить усреднённое время выполнения процесса. --- Пример, как замерить усреднённое время выполнения некоторого скоротечного процесса с помощью мультимедийного таймера. Здесь в качестве исследуемого процесса применяется заглушка - Sleep(10) - это задержка выполнения текущего потока на 10 миллисекунд. Заодно проверите тактовую частоту своего процессора. ![]()
7
|
13094 / 5875 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
01.01.2012, 16:34 | 12 |
![]()
2
|
01.01.2012, 16:34 | |
Помогаю со студенческими работами здесь
12
Подсчёт время работы алгоритма сортировки
Как найти время работы алгоритма? Время работы алгоритма пирамидальной сортировки массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |