Способы определения скорости выполнения функции...

 

 Копаясь по форуму, я увидел только один способ замера скорости выполнения скорости функций.

На входе:

Time = GetTickCount();

 На выходе:

DeltaTime = GetTickCount() - Time;

 существуют ли какие-н. ещё способы для этого?

 
Что такое скорость выполнения скорости функций? 
 
имею ввиду скорость выполнению функции. Ну или цикла отдельно.
 

В С++ можно так:

{
 Timer CTime;
 ...
}

Timer это класс, где в конструкторе засекается врямя начала. В деструкторе время конца, разница и вывод разницы.

Наверняка, также можно и в MQL5.

В MQL4 только этой функцией "GetTickCount()" точно померить время можно.

 
Zhunko:

В С++ можно так:

Timer это класс, где в конструкторе засекается врямя начала. В деструкторе время конца, разница и вывод разницы.

Наверняка, также можно и в MQL5.

В MQL4 только этой функцией "GetTickCount()" точно померить время можно.

 


Здесь https://www.mql5.com/ru/forum/101849, Renat писал:

 

Некорректно сравнивать величины, укладывающиеся в погрешность. А погрешность результатов функции GetTickCount() 16 ms.

 Я так понимаю, этими 16 ms пренебрегают?
 
tara:
Что такое скорость выполнения скорости функций? 

Количество выполнений функции за единицу времени приведенное к количеству выполнений равному единице.
 
hoz:

 существуют ли какие-н. ещё способы для этого?


1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

 
anonymous:

1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

Да. Это ещё более точное. Более точного не существует на компе. Но есть один недостаток. Не на любом компе это будет работать и на разных компах разный дискрет может быть.

На моём компе дискрет 500 наносекунд. 

hoz:


Здесь https://www.mql5.com/ru/forum/101849, Renat писал:

 

 Я так понимаю, этими 16 ms пренебрегают?
Если не хотите возиться с Query..., то запустите несколько раз, потом разделите на количество циклов. Как, Дмитрий выше написал.  

 
hoz:


Здесь https://www.mql5.com/ru/forum/101849, Renat писал:

 

 Я так понимаю, этими 16 ms пренебрегают?

Чтоб уменьшить погрешность в 100000 раз, выполните вызов функции 100000 раз, а общее время поделите на 100000.
 
hoz:

 Копаясь по форуму, я увидел только один способ замера скорости выполнения скорости функций.

На входе:

 На выходе:

 существуют ли какие-н. ещё способы для этого?


Примеры расчета времени выполнения отдельных функций https://www.mql5.com/ru/forum/123371
Причина обращения: