PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 35

 
MQL4에서는 어떻게 되는지 모르겠지만 C++에서 경주를 실행했을 때 처음 실행한 코드가 두 번째 코드보다 느리게 실행된다는 것을 알았습니다. 물론 초기 메모리 할당 에는 시간이 걸립니다. 일반적으로 5% 더 느립니다.
 
double H_global[ 1000 ],L_global[ 1000 ];
int start(){
   int i,j,start_local,start_global,GetTick_local,GetTick_global;
   double H_local[ 1000 ],L_local[ 1000 ];
   start_local= GetTickCount ();
   for (j= 0 ;j< 10000 ;j++)
       for (i= 0 ;i< 1000 ;i++){
         H_local[i] = High[i];
         L_local[i] = Low[i];
      }
   GetTick_local = GetTickCount ();
//---------------------
   start_global= GetTickCount ();
   for (j= 0 ;j< 10000 ;j++)
       for (i= 0 ;i< 1000 ;i++){
         H_global[i] = High[i];
         L_global[i] = Low[i];
      }
   GetTick_global = GetTickCount ();
//---------------------   
   Print ( "локальный массив: " , GetTick_local-start_local , " миллисекунд." );
   Print ( "глобальный массив: " , GetTick_global-start_global, " миллисекунд." );
return ( 0 );
}

로그에서:

2012.03.23 13:40:50 테스트 EURUSD,H1: 전역 배열: 1406밀리초.

2012.03.23 13:40:50 EURUSD,H1 테스트: 로컬 배열: 1344밀리초.

이제 논리적입니다. 전역 변수 는 조금 더 길고 지역 변수는 더 빠르지 만 중요하지 않다고 생각했지만 호출 된 함수에서도 측정해야합니다. 여전히 약간의 차이가있을 수 있습니다.

 
IgorM :

로그에서:

2012.03.23 13:40:50 테스트 EURUSD,H1: 전역 배열: 1406밀리초.

2012.03.23 13:40:50 EURUSD,H1 테스트: 로컬 배열: 1344밀리초.

이제 논리적입니다. 전역 변수는 조금 더 길고 지역 변수는 더 빠르지 만 중요하지 않다고 생각했지만 호출 된 함수에서도 측정해야합니다. 여전히 약간의 차이가있을 수 있습니다.

아마도 교환하면 결과가 그대로 유지됩니다.
 
Zhunko : 아마, 그것들을 바꿔도 결과는 그대로일 것입니다.

Print 시작 func() 후 start() 를 func() 로 변경 및 복사:

2012.03.23 14:11:15 EURUSD,H1 테스트: 로컬 배열: 1313밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 전역 배열: 1359밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 함수 호출.....

2012.03.23 14:11:18 테스트 EURUSD,H1: 함수, 로컬 배열: 1312밀리초.

2012.03.23 14:11:18 EURUSD,H1 테스트: f-tion, 글로벌 어레이: 1328밀리초.




 
IgorM :

Print 시작 func() 후 start() 를 func() 로 변경 및 복사:

2012.03.23 14:11:15 EURUSD,H1 테스트: 로컬 배열: 1313밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 전역 배열: 1359밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 함수 호출.....

2012.03.23 14:11:18 테스트 EURUSD,H1: 함수, 로컬 배열: 1312밀리초.

2012.03.23 14:11:18 EURUSD,H1 테스트: f-tion, 글로벌 어레이: 1328밀리초.

전역과 지역을 바꿨습니까? 이제 처음에는 로컬, 다음은 글로벌입니다. 그 반대여야 합니다.
 
IgorM :

Print 시작 func() 이후에 start()를 변경하고 func()에 복사했습니다.

2012.03.23 14:11:15 EURUSD,H1 테스트: 로컬 배열: 1313밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 전역 배열: 1359밀리초.

2012.03.23 14:11:15 EURUSD,H1 테스트: 함수 호출.....

2012.03.23 14:11:18 테스트 EURUSD,H1: 함수, 로컬 배열: 1312밀리초.

2012.03.23 14:11:18 EURUSD,H1 테스트: f-tion, 글로벌 어레이: 1328밀리초.

추측의 권리: 지역 변수의 주소는 함수 호출 시점부터 계산되고 전역 변수의 주소는 프로그램 호출 시점부터 계산됩니다. 이론적으로 전역 변수 에 액세스하려면 한 번 더 작업을 수행해야 합니다(오프셋 추가).
 
Zhunko : 글로벌과 로컬을 바꿨나요? 이제 먼저 로컬 다음 글로벌입니다. 그 반대여야 합니다.

그렇게 했지만 결과는 변경되지 않았으며 별도의 함수에서 배열이 ID를 선언하고 함수를 호출하고 전역 배열에 대한 호출과 비교했습니다.

alsu , 꽤 논리적인 가정이지만 내 실험은 재미있는 아이디어를 이끌어 냈습니다. 잊지 않으면 mql5에 대한 실험을 수행하고 MT5 성능에 대해 논의하고 아마도 뭔가가 명확해질 것입니다.

 

아무도 mql FANN으로 이식하는 데 관여하지 않았습니까? http://leenissen.dk/fann/wp/download/ 또는 NS가 있는 유사한 mql 코드

추신: 검색 및 Google에서 기성품 NS를 찾을 수조차 없습니다. .dll을 FANN과 연결했는데 매우 자신 있게 작동하지만 .dll이 없으면 좋겠습니다.

 
IgorM :

아무도 mql FANN으로 이식하는 데 관여하지 않았습니까? http://leenissen.dk/fann/wp/download/ 또는 NS가 있는 유사한 mql 코드

추신: 검색 및 Google에서 기성품 NS를 찾을 수조차 없습니다. .dll을 FANN과 연결했는데 매우 자신 있게 작동하지만 .dll이 없으면 좋겠습니다.


전문 소프트웨어로 네트워크를 훈련하는 것이 좋습니다. 훨씬 더 빨리. 코드에서 사용하는 것이 좋습니다.
 
Vinin : 좋습니다. 훨씬 더 빨리. 코드에서 사용하는 것이 좋습니다.
이것은 모두 분명하지만 매우 필요하고 ... 이제 전문가로서 자동 최적화 프로그램을 만들고 싶습니다. 그래서 .dll 없이도 마찬가지입니다. :)
사유: