Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай, как вставлять видео в редакторе сообщений
hoz
1936
hoz 2013.04.24 22:01 

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

На входе:

Time = GetTickCount();

 На выходе:

DeltaTime = GetTickCount() - Time;

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

Алексей Тарабанов
7220
Алексей Тарабанов 2013.04.24 22:05  
Что такое скорость выполнения скорости функций? 
hoz
1936
hoz 2013.04.24 22:18  
имею ввиду скорость выполнению функции. Ну или цикла отдельно.
Vadim Zhunko
5221
Vadim Zhunko 2013.04.24 23:17  

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

{
 Timer CTime;
 ...
}

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

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

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

hoz
1936
hoz 2013.04.25 07:58  
Zhunko:

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

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

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

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

 


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

 

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

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

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

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


1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

Vadim Zhunko
5221
Vadim Zhunko 2013.04.25 08:42  
anonymous:

1. QueryPerformanceFrequency + QueryPerformanceCounter

2. RDTSC

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

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

hoz:


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

 

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

Alexey Subbotin
4999
Alexey Subbotin 2013.04.25 08:49  
hoz:


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

 

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

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

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

На входе:

 На выходе:

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


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