표준 기능/접근법의 대체 구현 - 페이지 6

 
fxsaber :

아날로그조차도 성능면에서 크게 다릅니다. 쓰거나 찾을 수 있는 사람의 수는 사용자의 백분율 미만입니다.

Duc 왜냐하면 나머지 사람들은 기존 성능에 상당히 만족했기 때문입니다) 결국, 이러한 가속의 대부분은 격리된 테스트 측정에서만 눈에 띄게 나타납니다.

물론 탁월함을 위해 노력해야 한다고 주장하는 것은 아니지만 우선순위에 따라 하는 것이 바람직합니다.

 
Alexey Navoykov :

Duc 왜냐하면 나머지 사람들은 기존 성능에 상당히 만족했기 때문입니다) 결국, 이러한 가속의 대부분은 격리된 테스트 측정에서만 눈에 띄게 나타납니다.

최적화가 1% 증가해도 가시적인 결과를 얻을 수 있습니다.

물론 탁월함을 위해 노력해야 한다고 주장하는 것은 아니지만 우선순위에 따라 하는 것이 바람직합니다.

MQ의 경우, 당신은 여러 가지 이유로 상위 5위 안에 들지 않은 MT4 장인의 전체 군대보다 덜 흥미롭습니다.

 
Библиотеки: Fast iBarShift and Bars for MT5
Библиотеки: Fast iBarShift and Bars for MT5
  • 2018.05.04
  • www.mql5.com
Fast iBarShift and Bars for MT5: Автор: Nikolai Semko...
파일:
iBars.mqh  14 kb
 

표준 함수 ceil(), floor(), round()의 더 빠른 유사

속도 2~2.5배 증가

 long Ceil ( double x) { return (x-( long )x> 0 )?( long )x+ 1 :( long )x; }
long Round( double x) { return (x> 0 )?( long )(x+ 0.5 ):( long )(x- 0.5 );}
long Floor( double x) { return (x> 0 )?( long )x:(( long )x-x> 0 )?( long )x- 1 :( long )x; }

정확성 및 속도 테스트 결과:

 2018.08 . 25 17 : 23 : 23.199 TestRound (EURUSD,M10)  Время выполнения ceil =   3.745 наносекунд, Контрольная сумма = 5250492895
2018.08 . 25 17 : 23 : 23.200 TestRound (EURUSD,M10)  Время выполнения Ceil =   1.806 наносекунд, Контрольная сумма = 5250492895
2018.08 . 25 17 : 23 : 23.205 TestRound (EURUSD,M10)  Время выполнения floor = 4.243 наносекунд, Контрольная сумма = 5249492896
2018.08 . 25 17 : 23 : 23.206 TestRound (EURUSD,M10)  Время выполнения Floor = 1.621 наносекунд, Контрольная сумма = 5249492896
2018.08 . 25 17 : 23 : 23.209 TestRound (EURUSD,M10)  Время выполнения round = 2.984 наносекунд, Контрольная сумма = 5249992896
2018.08 . 25 17 : 23 : 23.211 TestRound (EURUSD,M10)  Время выполнения Round = 1.519 наносекунд, Контрольная сумма = 5249992896
표준 함수는 double 형식 을 반환합니다. 그러나 나는 그것을 반복하지 않았다. 둥근 함수에 이중 유형이 필요한 이유를 이해하지 못합니다.
파일:
TestRound.mq5  5 kb
 
Nikolai Semko :

정확성 및 속도 테스트 결과:

나노가 아니라 마일입니다.

 
fxsaber :

나노가 아니라 마일입니다.

나노가 없습니다. 1000000을 통과하고 1000으로 나눕니다.
그들만이 더 빠르기 때문입니다. 루프 패스의 모든 내용과 함께 계산됩니다. 3시간 안에 나는 컴퓨터로 가서 이 순전히 함수들의 실행 시간 계산을 정정할 것이다.
 
Nikolai Semko :
나노가 없습니다. 1000000을 통과하고 1000으로 나눕니다.
그럼 애매한 해석. 하나의 함수 호출 의 평균 시간이 아니라 주기 시간이 표시되도록 결정했습니다.
 
fxsaber :
그럼 애매한 해석. 하나의 함수 호출 의 평균 시간이 아니라 주기 시간이 표시되도록 결정했습니다.
예, 이 시간에는 3개의 추가 및 1개의 확인을 수행하는 시간도 포함됩니다.
내가 고칠게, 왜냐면 방법을 알아. 따라서 이득은 더욱 커질 것입니다.
 
Nikolai Semko :
표준 함수는 double 형식 을 반환합니다. 그러나 나는 그것을 반복하지 않았다. 둥근 함수에 이중 유형이 필요한 이유를 이해하지 못합니다.

double을 정수로 변환하는 것은 (따라서) 형편없는 코드이기 때문입니다. round with friend는 float에서 정수 유형을 가져오도록 설계되지 않았습니다.