Probando el nuevo compilador MQL5 para plataformas x64 - ¡Cálculos de 2 a 10 veces más rápidos! - página 18

 
Alexey Sarmin:

Pregunta: ¿el compilador de MT5 x64 ahora (última versión) compila con Optimize activado por defecto? (Optimizar=1)


Eso parece.

 

¿Cómo puedo reducir el tiempo de compilación, incluso a costa de reducir el rendimiento del código resultante?

Necesito compilar un archivo de 500 megabytes, estoy cansado de esperar...

 
Aleksey Vyazmikin:

¿Cómo puedo reducir el tiempo de compilación, incluso a costa de reducir el rendimiento del código resultante?

Necesito compilar un archivo de 500 megabytes, estoy cansado de esperar...

Pensé que habías dado un ejemplo de código similar hace tiempo... ¿puede hacerlo de nuevo?

 
Alexey Kozitsyn:

Creo que una vez diste un ejemplo de código similar... ¿puede hacerlo de nuevo?

Sí, aquí hay un enlace a la EA.

Han pasado dos días - la compilación es del 7%...

 
Aleksey Vyazmikin:

Sí, hay un enlace a la EA aquí.

Han pasado dos días - la compilación es del 7%...

He mirado el archivo... Sólo un poco de caso-armagedón :-)

 
Denis Kirichenko:

Echa un vistazo al archivo... Sólo una especie de caso-armagedón :-)

Para ello, hay que pasar por muchas combinaciones diferentes de conjuntos de variables.

 
Aleksey Vyazmikin:

Qué hacer, hay muchas combinaciones diferentes de conjuntos de variables para pasar.

El objetivo es noble. Pero, ¿por qué utilizar medios tan bárbaros? Hay varias pruebas unitarias en el MetaEditor estándar. No he visto archivos de 35 Mb allí. Mi editor incluso se congeló :-))

 
Denis Kirichenko:

El objetivo es noble. Pero, ¿por qué utilizar medios tan bárbaros? Hay varias pruebas unitarias en el paquete estándar de MetaEditor. No he visto archivos de 35 Mb allí. Mi editor incluso se congeló :-))

¿Qué otras herramientas sugiere? Esta es la opción más rápida que se me ha ocurrido hasta ahora.

El archivo se compila así normalmente, no más de una hora de espera... pero para 500 megas ya es difícil.

De hecho, ni siquiera está claro qué hace el compilador ahí, todo está muy claro en el código - no hay nada que optimizar, por así decirlo...
 

Para acelerar la compilación (fase de optimización), reduzca drásticamente el tamaño de las funciones.

Cuantas más funciones tengan cientos o miles de líneas, más lenta será la optimización cíclica. El código se puede mejorar infinitamente con funciones largas.

 
Renat Fatkhullin:

Para acelerar la compilación (fase de optimización), reduzca drásticamente el tamaño de las funciones.

Cuantas más funciones tengan cientos o miles de líneas, más lenta será la optimización cíclica. Se puede mejorar infinitamente el código de las funciones largas.

Podría transferir esta enumeración, digamos, a un archivo CSV externo, pero entonces surge otro problema - pérdida de tiempo para leer el archivo, y además, al distribuir las tareas a los agentes, no soy capaz de enviar a cada agente 500 megabytes, mientras que el código EA se envía a un agente (¿o no?) y se comparte entre ellos.

Otra pregunta, mi código se comprime fácilmente por 7zip de 500 a 15 megabytes, pero después de la compilación el archivo será de alrededor de 500 - ¿por qué es así - no hay posibilidad de hacer la compresión primitiva (incluso a 100 megabytes)?