Test du nouveau compilateur MQL5 pour les plateformes x64 - calculs 2 à 10 fois plus rapides ! - page 18

 
Alexey Sarmin:

Question : le compilateur MT5 x64 compile-t-il maintenant (dernière version) avec Optimize activé par défaut ? (Optimiser=1)


C'est ce qu'il semble.

 

Comment puis-je réduire le temps de compilation, même au prix d'une réduction des performances du code résultant ?

Je dois compiler un fichier de 500 mégaoctets - je suis fatigué d'attendre...

 
Aleksey Vyazmikin:

Comment puis-je réduire le temps de compilation, même au prix d'une réduction des performances du code résultant ?

Je dois compiler un fichier de 500 mégaoctets - je suis fatigué d'attendre...

Je pensais que vous aviez donné un exemple de code similaire il y a quelque temps... Vous pouvez le refaire ?

 
Alexey Kozitsyn:

Je crois que vous avez déjà donné un exemple de code similaire... Vous pouvez le refaire ?

Oui, voici un lien vers l'EA.

Cela fait deux jours - la compilation est de 7%...

 
Aleksey Vyazmikin:

Oui, il y a un lien vers l'EA ici.

Cela fait deux jours - la compilation est de 7%...

J'ai regardé le dossier... Juste quelques cas-armageddon :-)

 
Denis Kirichenko:

J'ai jeté un coup d'oeil au dossier... Juste une sorte de cas-armageddon :-)

Pour faire quoi, vous devez passer par de nombreuses combinaisons différentes de jeux de variables.

 
Aleksey Vyazmikin:

Que faire, il y a de nombreuses combinaisons différentes de jeux de variables à parcourir.

L'objectif est noble. Mais pourquoi utiliser des moyens aussi barbares ? Il existe plusieurs tests unitaires dans le MetaEditor standard. Je n'y ai pas vu de fichiers de 35 Mo. Mon éditeur a même gelé :-))

 
Denis Kirichenko:

L'objectif est noble. Mais pourquoi utiliser des moyens aussi barbares ? Il y a plusieurs tests unitaires dans le paquetage standard de MetaEditor. Je n'y ai pas vu de fichiers de 35 Mo. Mon éditeur a même gelé :-))

Quels autres outils suggérez-vous ? C'est l'option la plus rapide que j'ai trouvée jusqu'à présent.

Le fichier est compilé de cette façon normalement, pas plus d'une heure à attendre... mais pour 500 MB c'est déjà difficile.

En fait, on ne sait même pas ce que le compilateur fait là, tout est très clair dans le code - il n'y a rien à optimiser, pour ainsi dire...
 

Pour accélérer la compilation (phase d'optimisation), réduisez drastiquement la taille des fonctions.

Plus les fonctions comptent des centaines ou des milliers de lignes, plus l'optimisation cyclique est lente. Le code peut être amélioré à l'infini avec des fonctions longues.

 
Renat Fatkhullin:

Pour accélérer la compilation (phase d'optimisation), réduisez drastiquement la taille des fonctions.

Plus les fonctions comptent des centaines ou des milliers de lignes, plus l'optimisation cyclique est lente. Vous pouvez améliorer indéfiniment le code des fonctions longues.

Je pourrais transférer cette énumération, disons, dans un fichier CSV externe, mais un autre problème se pose alors - perte de temps pour lire le fichier, et de plus, lors de la distribution des tâches aux agents, je ne suis pas en mesure d'envoyer 500 mégaoctets à chaque agent, alors que le code EA est envoyé à un agent (ou pas ?) et divisé entre eux.

Une autre question, mon code est facilement compressé par 7zip de 500 à 15 mégaoctets, mais après la compilation le fichier sera autour de 500 - pourquoi est-ce ainsi - aucune chance de faire une compression primitive (même à 100 mégaoctets) ?