Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 35

 
Eu não sei sobre a MQL4, mas quando eu estava correndo uma corrida em C++, notei que o código que você corre primeiro é mais lento que o segundo. Certamente, é preciso tempo para alocar a memória primeiro. Normalmente 5% mais lento.
 
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);
}

no diário de bordo:

2012.03.23 13:40:50 teste EURUSD,H1: matriz global: 1406 milissegundos.

2012.03.23 13:40:50 teste EURUSD,H1: matriz local: 1344 milissegundos.

agora faz sentido: as variáveis globais demoram um pouco mais, as locais mais rápido; embora eu achasse que não fazia diferença, eu deveria medi-lo na função chamada, talvez haja alguma outra diferença

 
IgorM:

no diário de bordo:

2012.03.23 13:40:50 teste EURUSD,H1: matriz global: 1406 milissegundos.

2012.03.23 13:40:50 teste EURUSD,H1: matriz local: 1344 milissegundos.

agora faz sentido: as variáveis globais demoram um pouco mais, as locais mais rápido; embora eu achasse que não fazia diferença, eu deveria medi-lo na função chamada, talvez haja alguma outra diferença

Acho que se você trocá-las, os resultados permanecerão os mesmos.
 
Zhunko: Acho que se você trocá-los, os resultados permanecerão os mesmos.

mudou, e copiou start() para func(), depois de pprinnts start func() :

2012, 03.23 14:11:15 teste EURUSD,H1: matriz local: 1313 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: matriz global: 1359 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: função de chamada.....

2012.03.23 14:11:18 teste EURUSD,H1: ação ph-, matriz local: 1312 milissegundos.

2012.03.23 14:11:18 teste EURUSD,H1: f-ction, matriz global: 1328 milissegundos.




 
IgorM:

mudou, e copiou start() para func(), depois que as impressões começam func() :

2012, 03.23 14:11:15 teste EURUSD,H1: matriz local: 1313 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: matriz global: 1359 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: função de chamada.....

2012.03.23 14:11:18 teste EURUSD,H1: ph-ação, matriz local: 1312 milissegundos.

2012.03.23 14:11:18 teste EURUSD,H1: f-ction, matriz global: 1328 milissegundos.

Trocado global e local? Neste momento é local primeiro, depois global. Deveria ser o contrário.
 
IgorM:

mudou, e copiou start() para func(), depois que as impressões começam func() :

2012, 03.23 14:11:15 teste EURUSD,H1: matriz local: 1313 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: matriz global: 1359 milissegundos.

2012.03.23 14:11:15 teste EURUSD,H1: função de chamada.....

2012.03.23 14:11:18 teste EURUSD,H1: ação ph-, matriz local: 1312 milissegundos.

2012.03.23 14:11:18 teste EURUSD,H1: f-ction, matriz global: 1328 milissegundos.

Por uma questão de especulação, o endereço da variável local é contado a partir do ponto de chamada da função, o endereço da variável global é contado a partir do ponto de chamada do programa, ou seja, para acessar a variável global, mais uma ação (adicionar um offset) deve ser realizada.
 
Zhunko: Você já trocou o global e o local? Agora o local é seguido primeiro pelo global. Deveria ser invertido.

Eu o fiz, mas os resultados não mudaram, e também declarei uma matriz em uma função separada, chamada de função e comparei-a a uma chamada de matriz global

alsu, essa é uma suposição lógica, mas minhas experiências me levaram a uma idéia engraçada: o mql4 é para lamas, você a declara da maneira que quiser, como dizem no jogo. ))). Talvez eu faça algumas experiências com o mql5 se não me esquecer, é apenas discutir o desempenho do MT5, talvez algo se torne claro.

 

Por acaso ninguém portou FANN para o mql? http://leenissen.dk/fann/wp/download/, ou código similar ao mql com NS.

ZS: Eu não consigo encontrar um NS pronto por busca e google, eu conectei um .dll com FANN, ele funciona muito bem, mas eu gostaria dele sem .dll.

 
IgorM:

Por acaso ninguém portou FANN para o mql? http://leenissen.dk/fann/wp/download/, ou código similar ao mql com NS.

ZS: Eu não consigo encontrar um NS pronto por busca e google, eu conectei um .dll com FANN, ele funciona muito bem, mas eu gostaria dele sem .dll.


É melhor treinar a rede em software especializado. É muito mais rápido. E é melhor utilizá-lo em código
 
Vinin: É melhor treinar a rede em software especializado. É consideravelmente mais rápido. E é melhor utilizá-lo em código
Eu sei, mas eu realmente preciso disso e ... Quero fazer um auto-optimizador no meu Expert Advisor, sem .dll :)
Razão: