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
J'ai le sentiment que l'auteur de ce commentaire ne sait pas du tout comment fonctionnent le processeur, la mémoire et le compilateur...
Je pense que l'auteur a été tellement inconsidéré qu'il n'a pas compris la question.
Quel est le rapport entre la mémoire et le processeur ? La question portait sur l'optimisation dans MQL5.
P.S. Lisez à loisir le petit livre divertissant " Technique de développement de l'attention, O.A. Andreev, 2007".
Quel est le rapport entre la mémoire et le processeur ? La question portait sur l'optimisation dans MQL5.
Donc ce code, à votre avis, n'utilise ni la mémoire ni le CPU ? Et je réponds à la déclaration concernant les compilateurs :"Vous devrez faire de gros efforts pour battre les optimisations des compilateurs modernes. "
J'ai le sentiment que l'auteur de cette déclaration ne sait pas du tout comment fonctionnent le processeur, la mémoire et le compilateur... Je suis prêt à parier que n'importe lequel de vos codes peut être accéléré au moins dix fois, voire des centaines de fois.
Essayez donc d'abord de le prouver par rapport au code en question. De plus, si l'on en croit les résultats ci-dessus cités par Igor, c'est l'inverse : la déclaration à l'intérieur de la boucle fonctionne un peu plus vite.
Ainsi, toute cette danse et ce remue-ménage pour essayer de déjouer le compilateur coûtent plus cher au final. Il est plus difficile pour le compilateur d'optimiser le code. Lorsqu'une variable est déclarée en dehors d'un bloc, elle est considérée comme externe etconserve son état entre les itérations. Cela signifie que le compilateur a des options limitées pour l'optimiser. Le code propre est toujours mieux optimisé que le code "sale" (qui a des effets secondaires), si vous êtes familier avec le paradigme de la programmation fonctionnelle.
Essayez donc d'abord de le prouver par rapport au code en question. De plus, si l'on en croit les résultats ci-dessus cités par Igor, c'est l'inverse : la déclaration à l'intérieur de la boucle fonctionne un peu plus vite.
Ainsi, toute cette danse et ce remue-ménage pour essayer de déjouer le compilateur coûtent plus cher au final. Il est plus difficile pour le compilateur d'optimiser le code. Lorsqu'une variable est déclarée en dehors d'un bloc, elle est considérée comme externe et conserve son état entre les itérations, ce qui signifie que le compilateur a des capacités limitées pour l'optimiser. Le code propre est toujours mieux optimisé que le code "sale" (qui a des effets secondaires) si vous connaissez le paradigme de la programmation fonctionnelle.
Lisez à loisir mon livre, je pense que vous apprendrez beaucoup sur les compilateurs.
Essayez donc d'abord de le prouver par rapport au code en question. De plus, si l'on en croit les résultats ci-dessus cités par Igor, c'est l'inverse : la déclaration à l'intérieur de la boucle fonctionne un peu plus vite.
Ainsi, toute cette danse et ce remue-ménage pour essayer de déjouer le compilateur coûtent plus cher au final. Cela rend plus difficile l'optimisation du code par le compilateur. Lorsqu'une variable est déclarée en dehors d'un bloc, elle est considérée comme une variable externe qui conserve son état entre les itérations. Cela signifie que le compilateur a des options limitées pour son optimisation. Le code propre est toujours mieux optimisé que le code "sale" (qui a des effets secondaires), si vous êtes familier avec le paradigme de la programmation fonctionnelle.
Mon test montre le contraire, le code avec une déclaration de variable derrière la boucle fonctionne plus rapidement.
https://www.mql5.com/ru/forum/320307/page2#comment_12886814
Exécuté de nombreuses fois, le résultat est stable, le code avec déclaration de variable après la boucle, fonctionne plus rapidement.
Mon test montre le contraire, le code avec une déclaration de variable derrière la boucle est plus rapide.
C'est étrange, mais plus tôt l'homme a eu les résultats opposés
Vous devriez d'abord apprendre les bases et ensuite prouver votre point de vue. Vous comprendriez le résultat sans aucun test, si vous aviez lu au moins un livre sur le fonctionnement du CPU et de la mémoire. Je vous ai offert le plus ingénieux, si vous voulez avancer un peu dans la programmation, vous le lirez.
Étrange, mais plus tôt l'homme a eu les résultats opposés
J'ai déjà dit qu'un tel test de vitesse sur un exemple artificiel n'est pas du tout indicatif. Mes recherches sous le débogueur ne sont-elles pas suffisantes ? Je n'ai aucune crédibilité ? Tout est ignoré, c'est à vous de voir, je m'en vais.
D'ailleurs, si l'on en croit les résultats d'Igor ci-dessus, c'est le contraire.
Je ne me crois pas, je vérifie toujours deux fois, je ne pense pas que vous ayez besoin d'augmenter mon estime de soi... Il y a eu différents cas dans l'histoire, je vais trouver un Napoléon, et c'est parti ! ))))
C'est étrange, mais plus tôt l'homme a obtenu les résultats opposés.
Pourquoi ai-je ajouté srand(GetTickCount()) à mon test ? ?
;)