조금 놀랐습니다 :) 저는 수사학적 질문을 하지 않고 공유하기로 결정했습니다. - 페이지 24

 
TheXpert :
EMAshka 확인에서 - 가장 많을 것입니다.

흠 .. 더 이상 필요하지 않다고 생각합니다. 상황이 정리되었습니다. 이 스레드에서 관습적으로 - 나는 조금 놀랐고 공유하기로 결정했습니다 ... :)

다음은 테스트에서 발췌한 것입니다. 예고편에 있는 테스트의 전체 텍스트입니다. 라이브러리도 있습니다.

..........
....................
    IntRational ira={ 2345 , 3456 };
    IntRational irb={ 67 , 93 };
    IntRational irc={ 93 , 67 };
    t = GetTickCount ();
     for ( int i= 0 ;i<Count;i++)
      {
       ira.Div(irb); ira.Div(irc);
       ira.Mul(irb); ira.Mul(irc);
       ira.Add(irb); ira.Add(irc);
       ira.Sub(irb); ira.Sub(irc);
       ira.Norm();
      }
     Print ( "Common time IntRational test = " , GetTickCount ()-t, " ms; // " ,Count, " calls" );
     double da= 2345.0 / 3456.0 ;
     double db= 67.0 / 93.0 ;
     double dc= 93.0 / 67.0 ;
    t = GetTickCount ();
     for ( int i= 0 ;i<Count;i++)
      {
       da/=db; da/=dc;
       da*=db; da*=dc;
       da+=db; da+=dc;
       da-=db; da-=dc;
      }
     Print ( "Common time double test = " , GetTickCount ()-t, " ms; // " ,Count, " calls" );
..................
......

결과:

2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 공통 시간 int 테스트 = 62ms; // 1000000 호출
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 커먼 타임 롱 테스트 = 141ms; // 1000000 호출
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 공통 시간 이중 테스트 = 62ms; // 1000000 호출
2011.04.04 20:29:15 RationalSpeedTest (EURUSD,M20) 공통 시간 IntRational 테스트 = 1032ms; // 1000000 호출
2011.04.04 20:29:14 RationalSpeedTest (EURUSD,M20) 일반 시간 LongRational 테스트 = 921ms; // 1000000 호출

나는 매우 어리둥절합니다. 산술 연산 의 속도 측면에서 double과 int가 절대적으로 일치하고, 더구나 가장 빠르고, 오랫동안 반으로 뒤처져 있는 Rational이 완전히 뒤처져 있습니다.

이러한 실험에 비추어 볼 때 정수 테스터를 구축하는 것은 약간 지루했습니다.. :-))

아마도 다른 프로세서에서는 결과가 약간 다를 수 있지만(테스트하고 레이아웃하는 사람들에게 감사할 것입니다), 나는 엄청난 차이를 믿을 수 없습니다.

흥미롭게도 90년대 초에 정수 연산과 부동 연산의 차이를 테스트했는데 그 차이가 상당히 눈에 띄었습니다.

요약 - 90년대는 사라지고 부동 소수점 연산은 이제 매우 빠르게 작동합니다.

그것을 정수 산술로 바꾸는 것조차 (거래의 맥락에서) 합리적이지 않습니다. 이득은 전혀 환상적이지 않다면 무시할 수 있습니다.

최종 요약 - 인텔이 철 수준에서 합리적 산술을 즉시 지원하지 않으면 더 이상 걱정할 필요가 없습니다. 적어도 속도 측면에서는... :)

아멘.

// 반복합니다. 테스트는 별도의 컴퓨터 스톤에서 진행되었으므로 불필요한 착각에 빠지지 않기 위해 테스트를 컴퓨터에서 수행하고 하드웨어 매개 변수를 나타내는 결과를 게시하려는 사람들에게 묻습니다.

// 내 컴퓨터: 2GB RAM, Sempron 3100+ 2.2GHz, 32비트, WinXP 운영 체제

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - Документация по MQL5
파일:
 
MetaDriver :

흠 .. 더 이상 필요하지 않다고 생각합니다. 상황이 정리되었습니다. 이 스레드에서 관습적으로 - 나는 조금 놀랐고 공유하기로 결정했습니다 ... :)



계산의 99%는 공통 분모로 축소할 필요가 없습니다. 따라서 테스트가 완전히 정확하지는 않습니다. 실제 계산을 하고 올바르게 수행해야 합니다. 오늘의 추정치에 따르면 Ints는 더 빠릅니다(모든 것이 메모리와 프로세서 캐시에 들어맞기 때문에) 시간 - 1,000,000 :) 단순히 놀라운 결과입니다. 1초에 2000번 달리는 것과 같습니다. :)

 
MetaDriver :

요약 - 90년대는 사라지고 부동 소수점 연산은 이제 매우 빠르게 작동합니다 .

그것을 정수 산술로 변경하는 것조차 (거래의 맥락에서) 합리적이지 않습니다 . 이득은 전혀 환상적이지 않다면 무시할 수 있습니다.

지난 ... 11년 동안 프로그래밍을 해오신 분들은 오랫동안 이것을 알고 있습니다.

또한 SSE2가 없으면 일반적인 성능 향상이 없기 때문에 SSE2로 전환한 것이 헛되지 않았습니다.

 
Renat :

지난 ... 11년 동안 프로그래밍을 해오신 분들은 오랫동안 이것을 알고 있습니다.

SSE2가 없으면 성능이 전반적으로 향상되지 않기 때문에 SSE2로 전환한 것은 헛되지 않았습니다.

나는 32비트(요청, 입찰 및 시간)로 틱을 채웠습니다. 또한 수신됨 - 이미 사용할 수 있는 속도입니다.

:) 게다가, 기억에 따르면, 나는 MT5처럼 달리지 않습니다 - 나는 바 주위의 모든 옵션을 비틀고 그 반대도 마찬가지입니다. :) 나는!!! :)

**

그건 그렇고, 어렵지 않다면 MT로 운전하십시오. 위에 썼습니다.

 
Academic :
나는 32비트(요청, 입찰 및 시간)로 틱을 채웠습니다. 또한 수신됨 - 이미 사용할 수 있는 속도입니다.

꿈에서, 당신은 그런 다른 것을 채울 수 있습니다 ... 오직 연습만이 당신을 깨우고 모든 것을 망칩니다.

그러나 오늘 밤에는 새로운 환상의 비행이 있을 것입니다!

 
Renat :

꿈에서, 당신은 그런 다른 것을 채울 수 있습니다 ... 오직 연습만이 당신을 깨우고 모든 것을 망칩니다.

그러나 오늘 밤에는 새로운 환상의 비행이 있을 것입니다!

당신은 바보짓을 두려워하지 않습니다. 나는 거짓말을 하지 않는다. :) 밀어 넣는 것은 쉽습니다. 생각만 하면 됩니다. 음 ... 꿈에서-나는 자신감에 놀랐습니다. :)
 
Academic :
당신은 바보짓을 두려워하지 않습니다. 나는 거짓말을 하지 않는다. :) 밀어 넣는 것은 쉽습니다. 생각만 하면 됩니다. 음 ... 꿈에서-나는 자신감에 놀랐습니다. :)

내가 끊임없이 "연습"을 반복하는 것은 헛된 것이 아닙니다.

우리는 오랫동안 네트워크를 통해 전송하는 동안 따옴표를 극단적으로 비트 단위로 패킹하는 데 성공했습니다. 압축률은 평균 1분 13초로 10년분의 히스토리를 10~12MB로 압축한다.

그러나 이러한 불명예의 압축 해제(수학적 연산은 말할 것도 없고)는 속도에 대해 말할 수 없을 정도로 시간이 많이 걸립니다.

 
Renat :

내가 끊임없이 "연습"을 반복하는 것은 헛된 것이 아닙니다.

우리는 오랫동안 네트워크를 통해 전송하는 동안 따옴표를 극단적으로 비트 단위로 패킹하는 데 성공했습니다. 압축률은 평균 1분 13초로 10년분의 히스토리를 10~12MB로 압축한다.

그러나 이러한 불명예의 압축 해제(수학적 연산은 말할 것도 없고)는 속도에 대해 말할 수 없을 정도로 시간이 많이 걸립니다.

고성능 응용 프로그램을 프로그래밍한 경험이 있어야 합니다. 그리고 이론을 다루지 않으려면 이 5가지 기계 명령어의 32비트에서 데이터를 가져오는 것이 더 느리지 않을 것입니다.
 
MetaDriver :
...

아멘.

// 반복합니다. 테스트는 별도의 컴퓨터 스톤에서 진행되었으므로 불필요한 착각에 빠지지 않기 위해 테스트를 컴퓨터에서 수행하고 하드웨어 매개 변수를 나타내는 결과를 게시하려는 사람들에게 묻습니다.

// 내 컴퓨터: 2GB RAM, Sempron 3100+ 2.2GHz, 32비트, WinXP 운영 체제

가혹한 시베리아 벌목꾼도 똑같은 말을 했습니다 :o)

 2011.04 . 04 20 : 30 : 59      RationalSpeedTest (USDCHF,M1)   Common time int test = 78 ms; // 1000000 calls
2011.04 . 04 20 : 30 : 59      RationalSpeedTest (USDCHF,M1)   Common time long test = 125 ms; // 1000000 calls
2011.04 . 04 20 : 30 : 59      RationalSpeedTest (USDCHF,M1)   Common time double test = 94 ms; // 1000000 calls
2011.04 . 04 20 : 30 : 59      RationalSpeedTest (USDCHF,M1)   Common time IntRational test = 1391 ms; // 1000000 calls
2011.04 . 04 20 : 30 : 58      RationalSpeedTest (USDCHF,M1)   Common time LongRational test = 1015 ms; // 1000000 calls
P4 3 Гц [ 32 бита] 1Гб оперативы, ОС: Windows XP SP 3 версия 5.1 сборка 2600   

완전한 명확성을 위해 Count에서 또 다른 0을 표시했습니다.

 2011.04 . 04 20 : 39 : 22      RationalSpeedTest (USDCHF,M1)   Common time int test = 718 ms; // 10000000 calls
2011.04 . 04 20 : 39 : 22      RationalSpeedTest (USDCHF,M1)   Common time long test = 1266 ms; // 10000000 calls
2011.04 . 04 20 : 39 : 20      RationalSpeedTest (USDCHF,M1)   Common time double test = 1000 ms; // 10000000 calls
2011.04 . 04 20 : 39 : 19      RationalSpeedTest (USDCHF,M1)   Common time IntRational test = 13156 ms; // 10000000 calls
2011.04 . 04 20 : 39 : 06      RationalSpeedTest (USDCHF,M1)   Common time LongRational test = 9282 ms; // 10000000 calls
 
2011.04 . 04 22 : 36 : 01     RationalSpeedTest (EURUSD,H1)    Common time int test = 63 ms; // 1000000 calls
2011.04 . 04 22 : 36 : 01     RationalSpeedTest (EURUSD,H1)    Common time long test = 94 ms; // 1000000 calls
2011.04 . 04 22 : 36 : 01     RationalSpeedTest (EURUSD,H1)    Common time double test = 47 ms; // 1000000 calls
2011.04 . 04 22 : 36 : 01     RationalSpeedTest (EURUSD,H1)    Common time IntRational test = 734 ms; // 1000000 calls
2011.04 . 04 22 : 36 : 00     RationalSpeedTest (EURUSD,H1)    Common time LongRational test = 594 ms; // 1000000 calls
AMD Phenom 9850 쿼드 코어(2.5GHz), 2Gb, WinXP SP3 32