Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
hoz
1934
hoz  

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

На входе:

Time = GetTickCount();

 На выходе:

DeltaTime = GetTickCount() - Time;

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

Алексей Тарабанов
7331
Алексей Тарабанов  
Что такое скорость выполнения скорости функций? 
hoz
1934
hoz  
имею ввиду скорость выполнению функции. Ну или цикла отдельно.
Vadim Zhunko
5226
Vadim Zhunko  

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

{
 Timer CTime;
 ...
}

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

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

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

hoz
1934
hoz  
Zhunko:

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

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

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

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

 


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

 

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

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

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

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


1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

Vadim Zhunko
5226
Vadim Zhunko  
anonymous:

1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

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

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

hoz:


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

 

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

Alexey Subbotin
4998
Alexey Subbotin  
hoz:


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

 

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

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

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

На входе:

 На выходе:

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


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