Probando el nuevo compilador MQL5 para plataformas x64 - ¡Cálculos de 2 a 10 veces más rápidos! - página 19
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Se ha sugerido yael perfilador?
Opción nº 2. Tome cada línea de tipo:
en una función separada. Intenta creer a Renate:)
Es decir, el resultado debería ser así al final:
etc.Sí, hay un enlace a la EA aquí.
Han pasado dos días - la compilación es del 7%...
En esta máquina.
¿Se ha ofrecido yael perfilador?
No, no lo ha hecho. ¿Qué se supone que debo ver en él? Realmente no sé cómo usarlo.
Opción 2. Para poner cada cadena de tipo:
en una función separada. Intenta creer a Renat:)
Es decir, el resultado debe ser así al final:
etc.Es la variante "case :" y no la variante "if" la que da una ganancia de velocidad significativa allí. Si incluso lo haces como
El código se hará aún más grande. Pero puede comparar el tiempo de compilación y el rendimiento, por supuesto...
En este coche.
Sí, ese código no es grande, no he publicado un código de 500 megabytes - si lo necesitas puedo...
¿Qué otros medios sugiere? Esta es la opción más rápida que se me ha ocurrido hasta ahora...
Optimizar la lógica. Por ejemplo, trabajar con matrices y bucles. Intenta empaquetar los valores de los criterios en un array. Y hacer comprobaciones en bucle. Quizá entonces no sea necesario en 74 mil casos...
1. No, no lo hicieron. ¿Qué se supone que debo ver en él? Realmente no sé cómo usarlo.
2. es la variante "case :" y no la variante "if" la que da un aumento significativo de la velocidad. Si incluso lo haces como
El código será aún más rápido... Pero sí puedes comparar el tiempo de compilación y el rendimiento...
1. Ahí verás las partes más lentas del código. Aunque... Otra cuestión es si afecta a la compilación...
2. Como quieras: puedes utilizar el caso. Se le aconsejó que lo dividiera en pequeñas funciones. Desmóntalo y pruébalo. Sí, por supuesto, el código se hará más grande. Pero qué hacer.
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 repartir las tareas a los agentes no puedo enviar a cada agente 500 megabytes, mientras que el código EA se envía a un agente (¿o no?) y se divide entre ellos.
Y otra pregunta, mi código se comprime fácilmente por 7zip de 500 a 15 megabytes, pero después de la compresión, el archivo será de alrededor de 500 - ¿por qué es así - no hay manera de hacer la compresión primitiva (al menos hasta 100 megabytes)?
Comprimir el archivo por medio de un zip. Leer zip, descomprimir en el interior. Será más rápido que transferir 500 Mb de EA (también se transfiere a cada agente).
@Renat Fatkhullin, ¿podría aclarar que el perfilador puede ayudar a revelar los cuellos de botella de la compilación? ¿O lo utilizas sólo para comprobar la velocidad del código en tiempo real?
El perfilador no tiene nada que ver con la compilación.