Errori, bug, domande - pagina 1433

 

Salve.

Ecco una domanda - ieri prima dell'aggiornamento di MT5 il mio script è stato compilato letteralmente in 2 secondi. Oggi dopo l'aggiornamento ci sono voluti quasi 5 minuti per compilare... Sarà sempre così? :(

 
alexandr_trader:

Salve.

Una tale domanda - ieri prima dell'aggiornamento di MT5 il mio script ha compilato letteralmente in 2 secondi. Oggi dopo l'aggiornamento ci sono voluti quasi 5 minuti per compilare... Sarà sempre così? :(

Qual è il bit rate del terminale?

Da quale build a quale build hai aggiornato?

Hai dimenticato di allegare il codice sorgente dello script?

 
alexandr_trader:

Salve.

Che domanda - ieri prima dell'aggiornamento di MT5, il mio script ha compilato letteralmente in 2 secondi. Oggi dopo l'aggiornamento ci sono voluti quasi 5 minuti per compilare... Sarà sempre così? :(

Sì, 5 minuti sono un tempo molto lungo.
In alternativa, cercate di semplificare il codice (forse avete grandi funzioni (multi-linea)).

Puoi creare una richiesta a servicedesk e allegare il tuo codice, controlleremo perché un tempo di compilazione così lungo.
 
Ilyas:
Sì, 5 minuti sono tanti.
Come opzione, provate a semplificare il codice (forse avete una grande (multi-linea) funzione).

Puoi creare una richiesta a servicedesk e allegare il tuo codice, controlleremo perché ci vuole così tanto tempo per compilare.
Alexey Da:

Qual è il bit rate del terminale?

Da quale build a quale build hai fatto l'aggiornamento?

Hai dimenticato di allegare il codice sorgente dello script?

Win7 64

MT5 Alfa-Forex 5.00 costruito 1210 30 ottobre 2015

Non so da quale build ho aggiornato.

Il codice dello script è davvero complicato e ingombrante. Ma anche uno script primitivo che prima compilava istantaneamente ora compila in 0,5 secondi.

Mi regolerò, naturalmente, ma tieni presente che la compilazione è ora oooo lenta. Spero che tu possa risolvere il problema in futuro.

Saluti.


 
alexandr_trader:

Il codice dello script è davvero complesso e ingombrante. Ma anche uno script primitivo, che prima compilava istantaneamente, ora compila in 0,5 secondi.

Mi regolerò, naturalmente, ma tenete presente che la compilazione è ora molto lenta. Spero che lo sistemerete in futuro.

Le ultime build hanno un nuovo meccanismo di ottimizzazione abilitato di default durante la compilazione. Come risultato, la velocità di esecuzione dei programmi scritti in MQL è aumentata di diverse volte.

Il prezzo da pagare per questo è un aumento del tempo di compilazione, e nei casi "pesanti" (grandi funzioni multilinea) è aumentato di un ordine (da 3 sec a 16 min).

Semplificare l'algoritmo è l'unico modo per accelerare la compilazione finora.

 
Alexey Da:

Le ultime build includono un nuovo meccanismo di ottimizzazione di default durante la compilazione. Come risultato, la velocità di esecuzione dei programmi scritti in MQL è aumentata diverse volte.

Il prezzo da pagare per questo è un aumento del tempo di compilazione, e nei casi "pesanti" (grandi funzioni multilinea) è aumentato di un ordine (da 3 sec a 16 min).

La semplificazione dell'algoritmo è finora l'unico modo per accelerare la compilazione.

Credo che qualsiasi sviluppatore sacrificherà il tempo di compilazione per il bene di un'esecuzione più veloce del programma :)

Così si fa, ragazzi...

 
Alexey Da:

Le ultime build includono un nuovo meccanismo di ottimizzazione di default durante la compilazione. Come risultato, la velocità di esecuzione dei programmi scritti in MQL è aumentata diverse volte.

Il prezzo da pagare per questo è un aumento del tempo di compilazione, e nei casi "pesanti" (grandi funzioni multilinea) è aumentato di un ordine (da 3 sec a 16 min).

La semplificazione dell'algoritmo è finora l'unico modo per accelerare la compilazione.

Non stiamo programmando stazioni spaziali, dopo tutto. Forse si lascerebbe scegliere agli utenti stessi se ottimizzare il runtime o la velocità di compilazione?

Anche se personalmente non ho incontrato questo problema finora, perché non voglio passare 16 minuti di attesa ogni volta per modifiche di 1 riga di codice.

Ma si può compilare il prodotto finale solo una volta quando è completamente costruito e debuggato. Ha senso?

 

Errore di compilazione: operazione di fusione non valida

class A {};
class B {
        bool A() { return true; }
        bool f() {        A(); return true; } //нормально
        bool g() { return A(); }              //'A' - invalid cast operation
};
 
MT4: chiamo l'esperto EventChartCustom in OnDeinit, inviando un messaggio a un altro grafico, ma l'evento non arriva. Non c'è quasi nessun codice in OnDeinit, quindi il limite di 2,5 secondi non viene eseguito. Domanda: è possibile generare eventi personalizzati da OnDeinit o è vietato? Non ho trovato alcuna documentazione su questo argomento.
 
A100:

Errore di compilazione: operazione di fusione non valida

Prima volta stuprata kosher, poi non tanto dopo?