Obtenir le nombre de décimales de n'importe quel nombre (pas seulement les guillemets) en contournant Digits() dans MQL4 et MQL5 - page 15
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
si ArrayCopy() est fait de la même manière que Cysh memmove(),
Je pense que la vitesse d'ArrayCopy() dépend de la vitesse d'allocation de la mémoire, si la mémoire tampon intermédiaire est prête à être copiée, ArrayCopy() sera exécuté très rapidement, si la mémoire n'est pas allouée, vous commencerez à demander au système d'exploitation d'allouer la mémoire
vous pouvez essayer de le tester - faire un appel à ArrayCopy() avec un grand volume de données, préparant ainsi la mémoire tampon pour le swapping, puis faire une boucle avec ArrayCopy() avec un plus petit volume de données à copier et ensuite mesurer la vitesse
Dans notre exemple actuel, la copie est exécutée dans un tableau statique, mais en général il est intéressant, bien sûr, quand ArrayCopy est plus lent qu'un simple for. Si vous devez allouer de la mémoire, vous devrez le faire de toute façon, quelle que soit la façon dont vous le faites.
Dans notre exemple actuel, la copie est effectuée vers un tableau statique, mais en général, il est intéressant, bien sûr, lorsque ArrayCopy est plus lent que le simple for. Si nous devons allouer de la mémoire, nous devrons le faire de toute façon.
Cela n'a pas d'importance statique ou dynamique, nous ne savons pas comment ArrayCopy() est implémenté, j'ai juste supposé que c'est un "wrapper" sur les fonctions standard de Cish, memmove() fonctionne habituellement via un tampon supplémentaire... eh bien, comme d'habitude, c'est comme ça qu'il était écrit avant, il est difficile de dire comment et quel compilateur travaille
SZY : Je ne sais pas comment tester le temps d'exécution en MQL ((( - j'ai essayé plusieurs fois, je pense avoir pris des exemples dans l'aide, les résultats sont en quelque sorte très différents, et j'ai ignoré cette question par nécessité - je ne teste pas les performances, je regarde généralement dans le profileur, ce qui et comment est exécuté dans le temps
Je ne sais pas comment tester la vitesse d'exécution en MQL ((( - J'ai essayé plusieurs fois, je pense que j'ai pris des exemples dans l'aide, mais les résultats étaient très différents pour une raison quelconque, donc j'ai abandonné sur cette question parce que je ne teste pas les performances, j'utilise habituellement le profileur pour voir comment et quoi est exécuté dans le temps
voici la méthode la plus simple, que j'ai utilisée ci-dessus
voici la méthode la plus simple que j'ai utilisée ci-dessus
Merci, c'est fait, je le testerai demain.
Oui, cela fonctionnera beaucoup plus rapidement (remplacé dans la mesure du possible par ArrayCopy, le reste est identique) :
Je vous l'ai dit, j'ai écrit la première chose qui m'est venue à l'esprit sans aucun test)).
Cette variante n'est pas différente de la mienne. Les mesures (temps minimum sur 10 essais) le prouvent.
Vous pouvez voir que la variante avec cycle est plus rapide, car le cycle de 60 /4 = 15 éléments.
Cette variante n'est pas différente de la mienne.
Apparemment oui, seuls le type de structure et le type de tableau sont arbitraires.
Vous pouvez voir que la variante en boucle est plus rapide, car la boucle de 60 /4 = 15 éléments.
Bizarrement, j'ai obtenu plus vite que ArrayCopy avec les mêmes MqlTicks et int...
Bizarrement, j'ai obtenu plus vite que ArrayCopy avec les mêmes MqlTicks et int...
Je l'exécute dans MT5x64.
Apparemment, oui, mais le type de structure et le type de tableau sont arbitraires.
J'ai volontairement évité le cas commun pour permettre à plus de personnes de participer.
Jusqu'à présent
Fonctionne en MT5x64.
On a volontairement contourné le cas général pour que plus de personnes puissent participer.
Jusqu'à présent.
Je suppose que votre code est déjà plus rapide :)
Je dois y ajouter beaucoup de code de service pour améliorer la fonctionnalité d'ArrayCopy (début source, début dest, compte) et vérifier l'exactitude des paramètres...
En général, vous avez tellement de travaux/bibliothèques sympas que c'est étrange que vous demandiez et discutiez de la meilleure solution sur le forum :)
C'est étrange que vous demandiez et discutiez de la meilleure solution sur le forum :)
J'en ai besoin pour la bibliothèque de HistoryTicks. Merci de votre participation.