Erreurs, bugs, questions - page 2588
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Veuillez mettre à jour le compilateur KB.
À mon retour de vacances, si cela ne pose pas trop de problèmes, j'étudierai la question. Mais logiquement le bug peut se trouver dans votre code et non dans mql.
Au fait, juste pour le plaisir, et si vous aviez une bibliothèque qui fonctionne avec quel codage ? Êtes-vous sûr que c'est utf-16, mais que faire si c'est utf-8, après tout, le plus commun.
Je ne l'ai pas encore vérifié, merci pour le tuyau. Je vais creuser dans cette direction.
La bibliothèque est pour Ocean, les classes avec lesquelles je travaille sont sélectionnées avec un W, c'est-à-dire Unicode.
Si je comprends bien l'encodage.
const char *Utf8 ;
const char *Ansi ;
const wchar_t *Utf16 ;
const wchar_t *Utf32 ;
utf-16 implique le type wchar_t, la fonction de la bibliothèque qui lit la chaîne renvoie const wchar_t*
Il en ressort clairement que la fonction renvoie un pointeur vers la chaîne dans l'encodage utf-16
Dans les propriétés du projet, le support des caractères Unicode est également sélectionné.
La documentation mql indique que la chaîne de caractères fonctionne en Unicode.
J'optimise à nouveau, je ne suis pas sûr de pouvoir tester la vitesse d'exécution de ce code :
Je soupçonne que la variante 2 fonctionnera plus rapidement ?
si oui, où peuvent être les pièges - j'utilise dans OnTick() - pour trouver dans l'optimiseur de temps de commerce, la recherche de moyens d'optimiser le code
ZS : Je peux demander comment vérifier la vitesse des options numéro 1 et numéro 2, il est très probable que le compilateur va optimiser le code exécutable et les tests ne seront pas corrects - donc je demande
Je peux demander comment vérifier les variantes 1 et 2 en termes de vitesse, il y a une forte probabilité que le compilateur optimise le code exécutable et que les tests ne seront pas corrects - je demande donc
Exécutez un test régulier séparément pour 1 et 2 et comparez le temps ? )
Si le temps est négligeable, exécutez la même optimisation avec la variante 1 et la variante 2.
HH : Je peux demander comment tester les variantes #1 et #2 sur la vitesse, il est fort probable que le compilateur optimise le code exécutable et que les tests ne soient pas corrects - c'est pourquoi je demande
https://www.mql5.com/ru/code/18804
J'optimise à nouveau, je ne suis pas sûr de pouvoir tester la vitesse d'exécution de ce code :
Je soupçonne que la variante 2 fonctionnera plus rapidement ?
si oui, où peuvent être les pièges - j'utilise dans OnTick() - pour trouver dans l'optimiseur de temps de commerce, la recherche de moyens d'optimiser le code
ZS : Je peux demander comment vérifier la vitesse des options numéro 1 et numéro 2, il est très probable que le compilateur va optimiser le code exécutable et les tests ne seront pas corrects - donc je demande
Question sur ArrayResize. Je fais une réserve pour plusieurs gigaoctets à la fois. Puis j'augmente progressivement la Taille qui est inférieure à la Réserve initiale.
Pourquoi le TaskManager indique-t-il une augmentation de la consommation de mémoire pendant l'augmentation de la taille ?
Question sur ArrayResize. Je fais une réserve pour plusieurs gigaoctets à la fois. Puis j'augmente progressivement la Taille qui est inférieure à la Réserve initiale.
Pourquoi le TaskManager indique-t-il une augmentation de la consommation de mémoire pendant l'augmentation de la taille ?
Exécuter un test normal séparément pour 1 et 2 et comparer les temps ? )
Si le temps est négligeable, exécutez la même optimisation avec la variante 1 et la variante 2.
https://www.mql5.com/ru/code/18804
Je fais quelque chose de mal, je n'ai toujours pas pu voir la différence, les résultats flottent autour de 0,1 sec sur un seul essai.
Question sur ArrayResize. Je fais une réserve pour plusieurs gigaoctets à la fois. Puis j'augmente progressivement la Taille qui est inférieure à la Réserve initiale.
Pourquoi le TaskManager indique-t-il une augmentation de la consommation de mémoire pendant l'augmentation de la taille ?
Nous ne faisons rien à ce sujet volontairement - c'est une fonctionnalité du système d'exploitation (et l'utilisateur a-t-il vraiment besoin de gigaoctets ?
Si vous voulez avoir de la mémoire chaude à un moment critique d'un programme, vous devez "parcourir" les pages du morceau alloué avant ce moment, de sorte que les pages de mémoire virtuelle du processus deviennent des pages physiques.
Mais, depuis MQL, il n'y a pas d'accès à la partie réservée du tableau.