Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 35

 
No sé sobre MQL4, pero cuando estaba corriendo una carrera en C++, me di cuenta de que el código que se ejecuta primero es más lento que el segundo. Seguramente, primero se tarda en asignar la memoria. Por lo general, un 5% más 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);
}

en el registro:

2012.03.23 13:40:50 test EURUSD,H1: matriz global: 1406 milisegundos.

2012.03.23 13:40:50 test EURUSD,H1: matriz local: 1344 milisegundos.

ahora tiene sentido: las variables globales tardan un poco más, las locales más rápido; aunque pensaba que no había diferencia, debería medirlo en la función llamada, quizás haya alguna otra diferencia

 
IgorM:

en el registro:

2012.03.23 13:40:50 test EURUSD,H1: matriz global: 1406 milisegundos.

2012.03.23 13:40:50 test EURUSD,H1: matriz local: 1344 milisegundos.

ahora tiene sentido: las variables globales tardan un poco más, las locales más rápido; aunque creía que no había diferencia, debería medirlo en la función llamada, quizás haya alguna otra diferencia

Supongo que si los intercambias, los resultados seguirán siendo los mismos.
 
Zhunko: Supongo que si los intercambias, los resultados seguirán siendo los mismos.

cambiado, y copiado start() a func(), después de pprinnts start func() :

2012, 03.23 14:11:15 test EURUSD,H1: matriz local: 1313 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: matriz global: 1359 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, local array: 1312 milisegundos.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, global array: 1328 milisegundos.




 
IgorM:

cambió, y copió start() a func(), después imprime start func() :

2012, 03.23 14:11:15 test EURUSD,H1: matriz local: 1313 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: matriz global: 1359 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, local array: 1312 milisegundos.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, global array: 1328 milisegundos.

¿Intercambio de global y local? Ahora mismo es primero local y luego global. Debería ser al revés.
 
IgorM:

cambió, y copió start() a func(), después imprime start func() :

2012, 03.23 14:11:15 test EURUSD,H1: matriz local: 1313 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: matriz global: 1359 milisegundos.

2012.03.23 14:11:15 test EURUSD,H1: call function.....

2012.03.23 14:11:18 test EURUSD,H1: ph-action, local array: 1312 milisegundos.

2012.03.23 14:11:18 test EURUSD,H1: f-ction, global array: 1328 milisegundos.

A modo de especulación, la dirección de la variable local se cuenta desde el punto de llamada a la función, la dirección de la variable global se cuenta desde el punto de llamada al programa, es decir, para acceder a la variable global hay que realizar una acción más (añadir un desplazamiento).
 
Zhunko:¿Intercambiar lo global y lo local? Ahora la local es la primera seguida de la global. Debería tenerlo invertido.

Lo hice, pero los resultados no cambiaron, y también declaré un array en una función separada, llamé a la función y la comparé con una llamada a un array global

alsu, es una suposición bastante lógica, pero mis experimentos me han llevado a una idea curiosa: mql4 es para los lamers, lo declaras como quieres, como dicen en el juego. ))). Tal vez haga algún experimento con mql5 si no se me olvida, es sólo discutir el rendimiento de MT5, tal vez algo se aclare.

 

¿Por casualidad nadie ha portado FANN a mql? http://leenissen.dk/fann/wp/download/, o un código similar a mql con NS.

ZS: No puedo encontrar un NS listo por la búsqueda y google, he conectado un .dll con FANN, funciona bastante bien, pero me gustaría sin .dll.

 
IgorM:

¿Por casualidad nadie ha portado FANN a mql? http://leenissen.dk/fann/wp/download/, o un código similar a mql con NS.

ZS: No puedo encontrar un NS listo por la búsqueda y google, he conectado un .dll con FANN, funciona bastante bien, pero me gustaría sin .dll.


Es mejor entrenar la red en un software especializado. Es mucho más rápido. Y es mejor utilizarlo en código
 
Vinin: Es mejor entrenar la red en un software especializado. Es considerablemente más rápido. Y es mejor utilizarlo en código
Lo sé, pero realmente lo necesito y ... Quiero hacer un auto-optimizador en mi Expert Advisor, sin .dll :)
Razón de la queja: