Erreurs, bugs, questions - page 1433

 
alexandr_trader:

Bonjour.

C'est une question - hier, avant la mise à jour de MT5, mon script a été compilé en 2 secondes. Aujourd'hui, après la mise à jour, il a fallu presque 5 minutes pour compiler... Est-ce que ce sera toujours comme ça ? :(

Quel est le débit binaire du terminal ?

De quelle build à quelle build avez-vous effectué la mise à jour ?

Avez-vous oublié de joindre le code source du script ?

 
alexandr_trader:

Bonjour.

Quelle question ! Hier, avant la mise à jour de MT5, mon script a été compilé en 2 secondes. Aujourd'hui, après la mise à jour, il a fallu presque 5 minutes pour compiler... Est-ce que ce sera toujours comme ça ? :(

Oui, 5 minutes, c'est très long.
Sinon, essayez de simplifier le code (vous avez peut-être de grandes fonctions (multi-lignes)).

Vous pouvez créer une demande à servicedesk et joindre votre code, nous vérifierons pourquoi un temps de compilation si long.
 
Ilyas:
Oui, 5 minutes, c'est beaucoup.
En option, essayez de simplifier le code (vous avez peut-être une grande fonction (plusieurs lignes)).

Vous pouvez créer une demande à servicedesk et joindre votre code, nous vérifierons pourquoi il prend autant de temps à compiler.
Alexey Da:

Quel est le débit binaire du terminal ?

De quelle build à quelle build avez-vous effectué la mise à jour ?

Avez-vous oublié de joindre le code source du script ?

Win7 64

MT5 Alfa-Forex 5.00 built 1210 30 okt 2015

Je ne sais pas de quelle version j'ai fait la mise à jour.

Le code du script est vraiment compliqué et encombrant. Mais même un script primitif qui se compilait instantanément auparavant se compile maintenant en 0,5 seconde.

Je vais m'adapter, bien sûr, mais gardez à l'esprit que la compilation est maintenant oooo lente. J'espère que vous pourrez le réparer à l'avenir.

Regards.


 
alexandr_trader:

Le code du script est en effet complexe et lourd. Mais même un script primitif, qui se compilait instantanément auparavant, se compile maintenant en 0,5 seconde.

Je m'adapterai, bien sûr, mais n'oubliez pas que la compilation est maintenant très lente. J'espère que vous le réparerez à l'avenir.

Les dernières versions ont un nouveau mécanisme d'optimisation activé par défaut lors de la compilation. En conséquence, la vitesse d'exécution des programmes écrits en MQL a augmenté de plusieurs fois.

Le prix à payer pour cela est une augmentation du temps de compilation, et dans les cas "lourds" (grandes fonctions à plusieurs lignes), il a augmenté par ordre (de 3 sec à 16 min).

La simplification de l'algorithme est le seul moyen d'accélérer la compilation jusqu'à présent.

 
Alexey Da:

Les dernières versions incluent un nouveau mécanisme d'optimisation par défaut lors de la compilation. En conséquence, la vitesse d'exécution des programmes écrits en MQL a augmenté de plusieurs fois.

Le prix à payer pour cela est une augmentation du temps de compilation, et dans les cas "lourds" (grandes fonctions à plusieurs lignes), une augmentation de l'ordre (de 3 sec à 16 min).

La simplification des algorithmes est jusqu'à présent le seul moyen d'accélérer la compilation.

Je pense que n'importe quel développeur sacrifiera le temps de compilation au profit d'une exécution plus rapide du programme :)

Bien joué les gars...

 
Alexey Da:

Les dernières versions incluent un nouveau mécanisme d'optimisation par défaut lors de la compilation. En conséquence, la vitesse d'exécution des programmes écrits en MQL a augmenté de plusieurs fois.

Le prix à payer pour cela est une augmentation du temps de compilation, et dans les cas "lourds" (grandes fonctions à plusieurs lignes), une augmentation de l'ordre (de 3 sec à 16 min).

La simplification des algorithmes est jusqu'à présent le seul moyen d'accélérer la compilation.

Nous ne sommes pas en train de programmer des stations spatiales après tout. Peut-être laisseriez-vous les utilisateurs choisir eux-mêmes s'ils veulent optimiser le temps d'exécution ou la vitesse de compilation ?

Bien que je n'aie personnellement pas rencontré ce problème jusqu'à présent, car je ne veux pas passer 16 minutes à attendre à chaque fois pour des modifications d'une ligne de code.

Mais vous ne pouvez compiler le produit final qu'une seule fois, lorsqu'il est complètement construit et débogué. Est-ce que ça a un sens ?

 

Erreur de compilation : opération de distribution invalide

class A {};
class B {
        bool A() { return true; }
        bool f() {        A(); return true; } //нормально
        bool g() { return A(); }              //'A' - invalid cast operation
};
 
MT4 : J'appelle l'expert EventChartCustom dans OnDeinit, en envoyant un message à un autre graphique, mais l'événement ne vient pas. Il n'y a presque pas de code dans OnDeinit, donc limite 2,5 secondes il n'est pas exécuté. Question : est-il possible de générer des événements personnalisés à partir de OnDeinit ou est-ce interdit ? Je n'ai pas trouvé de documentation sur ce sujet.
 
A100:

Erreur de compilation : opération de distribution invalide

Le premier viol est kasher, puis moins après ?
 

Erreur de compilation :'<' - incompatibilité de modèle

template<typename T>
class A {
        T t;
};
class B {
                        B() : a( new A<int> ) {} //Error: <' - template mismatch
        A<int> * const a;
};