Errores, fallos, preguntas - página 1433

 

Hola.

Aquí hay una pregunta - ayer antes de la actualización de MT5 mi script compilado en literalmente 2 segundos. Hoy, después de la actualización, ha tardado casi 5 minutos en compilar... ¿Será siempre así? :(

 
alexandr_trader:

Hola.

Tal pregunta - ayer antes de la actualización de MT5 mi script compilado en literalmente 2 segundos. Hoy, después de la actualización, ha tardado casi 5 minutos en compilar... ¿Será siempre así? :(

¿Cuál es la tasa de bits del terminal?

¿Desde qué build a qué build has actualizado?

¿Has olvidado adjuntar el código fuente del script?

 
alexandr_trader:

Hola.

Tal pregunta - ayer antes de la actualización de MT5, mi script compilado en literalmente 2 segundos. Hoy, después de la actualización, ha tardado casi 5 minutos en compilar... ¿Será siempre así? :(

Sí, 5 minutos es mucho tiempo.
Alternativamente, intente simplificar el código (tal vez tenga funciones grandes (de varias líneas)).

Puedes crear una solicitud a servicedesk y adjuntar tu código, comprobaremos por qué un tiempo de compilación tan largo.
 
Ilyas:
Sí, 5 minutos es mucho.
Como opción, trate de simplificar el código (tal vez usted tiene una gran (multi-línea) funciones).

Puedes crear una solicitud a servicedesk y adjuntar tu código, comprobaremos por qué tarda tanto en compilar.
Alexey Da:

¿Cuál es la tasa de bits del terminal?

¿Desde qué compilación a qué compilación has actualizado?

¿Has olvidado adjuntar el código fuente del script?

Win7 64

MT5 Alfa-Forex 5.00 construido 1210 30 okt 2015

No sé de qué construcción he actualizado.

El código del script es realmente complicado y engorroso. Pero incluso un script primitivo que solía compilar instantáneamente ahora compila en 0,5 segundos.

Me adaptaré, por supuesto, pero ten en cuenta que la compilación es ahora ooooootra vez lenta. Espero que puedan arreglarlo en el futuro.

Saludos.


 
alexandr_trader:

El código de la secuencia de comandos es realmente complejo y engorroso. Pero incluso un script primitivo, que solía compilar instantáneamente, ahora lo hace en 0,5 segundos.

Me adaptaré, por supuesto, pero ten en cuenta que la compilación es ahora muy lenta. Espero que lo arreglen en el futuro.

Las últimas compilaciones tienen un nuevo mecanismo de optimización activado por defecto durante la compilación. Como resultado, la velocidad de ejecución de los programas escritos en MQL ha aumentado varias veces.

El precio a pagar por esto es un aumento del tiempo de compilación, y en los casos "pesados" (funciones grandes y de varias líneas) ha aumentado por orden (de 3 seg a 16 min).

Simplificar el algoritmo es la única forma de acelerar la compilación hasta ahora.

 
Alexey Da:

Las últimas compilaciones incluyen un nuevo mecanismo de optimización por defecto al compilar. Como resultado, la velocidad de ejecución de los programas escritos en MQL ha aumentado varias veces.

El precio a pagar por ello es un aumento del tiempo de compilación, y en los casos "pesados" (funciones grandes y de varias líneas) se incrementa por orden (de 3 seg a 16 min).

La simplificación del algoritmo es hasta ahora la única forma de acelerar la compilación.

Creo que cualquier desarrollador sacrificará el tiempo de compilación en aras de una ejecución más rápida del programa :)

Así se hace, chicos...

 
Alexey Da:

Las últimas compilaciones incluyen un nuevo mecanismo de optimización por defecto al compilar. Como resultado, la velocidad de ejecución de los programas escritos en MQL ha aumentado varias veces.

El precio a pagar por ello es un aumento del tiempo de compilación, y en los casos "pesados" (funciones grandes y de varias líneas) se incrementa por orden (de 3 seg a 16 min).

La simplificación del algoritmo es hasta ahora la única forma de acelerar la compilación.

Al fin y al cabo, no estamos programando estaciones espaciales. ¿Quizás se dejaría que los propios usuarios eligieran si se optimiza el tiempo de ejecución o la velocidad de compilación?

Aunque personalmente no me he encontrado con este problema hasta ahora porque no quiero pasar 16 minutos esperando cada vez por cambios de 1 línea de código.

Pero puede compilar el producto final sólo una vez cuando esté completamente construido y depurado. ¿Tiene sentido?

 

Error de compilación: operación de fundición no válida

class A {};
class B {
        bool A() { return true; }
        bool f() {        A(); return true; } //нормально
        bool g() { return A(); }              //'A' - invalid cast operation
};
 
MT4: Llamo al experto EventChartCustom en OnDeinit, enviando un mensaje a otro gráfico, pero el evento no llega. Casi no hay código en OnDeinit, por lo que el límite de 2,5 segundos no se ejecuta. Pregunta: ¿es posible generar eventos personalizados desde OnDeinit o está prohibido? No he podido encontrar ninguna documentación sobre este tema.
 
A100:

Error de compilación: operación de fundición no válida

¿La primera vez que se viola es kosher, y después no tanto?