Test del nuovo compilatore MQL5 per piattaforme x64 - calcoli da 2 a 10 volte più veloci! - pagina 18

 
Alexey Sarmin:

Domanda: il compilatore MT5 x64 ora (ultima versione) compila con Optimize attivato di default? (Optimize=1)


Sembra di sì.

 

Come posso ridurre il tempo del compilatore, anche a costo di una prestazione ridotta del codice risultante?

Ho bisogno di compilare un file di 500 megabyte - sono stanco di aspettare...

 
Aleksey Vyazmikin:

Come posso ridurre il tempo del compilatore, anche a costo di una prestazione ridotta del codice risultante?

Ho bisogno di compilare un file di 500 megabyte - sono stanco di aspettare...

Pensavo che avessi dato un esempio di codice simile qualche tempo fa... puoi farlo di nuovo?

 
Alexey Kozitsyn:

Credo che una volta tu abbia dato un esempio di codice simile... puoi farlo di nuovo?

Sì, ecco un link all'EA.

Sono passati due giorni - la compilation è al 7%...

 
Aleksey Vyazmikin:

Sì, c'è un link all'EA qui.

Sono passati due giorni - la compilation è al 7%...

Ho dato un'occhiata al file... Solo qualche caso-armageddon :-)

 
Denis Kirichenko:

Ho dato un'occhiata al file... Solo una specie di caso-armageddon :-)

Cosa fare, è necessario passare attraverso molte combinazioni diverse di set di variabili.

 
Aleksey Vyazmikin:

Cosa fare, ci sono molte combinazioni diverse di insiemi di variabili da esaminare.

L'obiettivo è nobile. Ma perché usare mezzi così barbari? Ci sono diversi test unitari nel MetaEditor standard. Non ho visto file da 35 Mb lì. Il mio editore si è persino bloccato :-))

 
Denis Kirichenko:

Lo scopo è nobile. Ma perché usare mezzi così barbari? Ci sono diversi test unitari nel pacchetto standard di MetaEditor. Non ho visto file da 35 Mb lì. Il mio editore si è persino bloccato :-))

Quali altri strumenti suggerisci? Questa è l'opzione più veloce che ho trovato finora.

Il file viene compilato così normalmente, non più di un'ora di attesa... ma per 500 MB è già difficile.

In effetti, non è nemmeno chiaro cosa il compilatore stia facendo lì, tutto è molto chiaro nel codice - non c'è niente da ottimizzare, per così dire...
 

Per accelerare la compilazione (fase di ottimizzazione), riducete drasticamente la dimensione delle funzioni.

Più le funzioni sono lunghe centinaia o migliaia di linee, più l'ottimizzazione ciclica è lenta. Il codice può essere migliorato all'infinito con funzioni lunghe.

 
Renat Fatkhullin:

Per accelerare la compilazione (fase di ottimizzazione), riducete drasticamente la dimensione delle funzioni.

Più le funzioni sono lunghe centinaia o migliaia di linee, più l'ottimizzazione ciclica è lenta. Si può migliorare all'infinito il codice delle funzioni lunghe.

Vorrei trasferire questa enumerazione, diciamo, in un file CSV esterno, ma poi sorge un altro problema - perdita di tempo per leggere il file, e inoltre, quando si distribuiscono i compiti agli agenti, non sono in grado di inviare ad ogni agente 500 megabyte, mentre il codice EA viene inviato ad un agente (o no?) e diviso tra loro.

Un'altra domanda, il mio codice è facilmente compresso da 7zip da 500 a 15 megabyte, ma dopo la compilazione il file sarà circa 500 - perché è così - nessuna possibilità di fare una compressione primitiva (anche a 100 megabyte)?

Motivazione: