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
quelqu'un a-t-il un compilateur installé ? vérifiez s'il vous plaît ! n'est-ce pas si ennuyeux ?
Le temps d'adressage d'un élément de tableau n'est TOUJOURS pas plus long que le temps d'adressage d'une variable.
Les chiffres spécifiques seront différents selon les compilateurs, mais la tendance devrait rester la même.
Le compilateur est Visual Studio 2005. Le processeur est un Athlon XP 2500+.
Le temps d'exécution avec l'initialisation du tableau est de 1,06-1,07 seconde.
La même boucle, mais avec
donne 0,37 à 0,4 seconde.
Et enfin,
0,56-0,6 с.
Je voudrais donc tirer la conclusion suivante :
n'est pas une question de compilateur ni de "tableau/non-réseau", mais de structuration adéquate des données et de code correct !
P.S. Bien sûr, toutes les thèses ci-dessus, à l'exception des mesures de temps, sont mon opinion personnelle, profondément subjective et modeste, juste en tant que programmeur.
oui, l'optimisation du code résultant dans le compilateur est une puissance après tout...
je ne veux pas entrer dans les détails, mais il semble que le copilateur de visual studio optimise les accès aux tableaux par lui-même.
pour que le test soit équitable, vous devez entrer une variable, disons S ; et insérer entre toutes les affectations x,y,z quelque chose comme S=S+x, S=S+y, S=S+z, et ensuite sortir S en plus du temps pour obtenir la vitesse "pure".
bien que l'optimiseur du compilateur puisse partiellement comprendre cette tricherie... :)
J'ai depuis longtemps écarté de telles pensées. J'ai même fait des tests. Et j'en suis arrivé à une conclusion :
Le compilateur effectue toutes les opérations prescrites et n'a tout simplement pas le droit de ne pas les effectuer parce qu'il est tout simplement impossible de savoir à 100% d'où je compte accéder à ces variables - dans la même méthode, à partir d'un timer (et d'un code structurellement sans rapport) ou même à partir d'un autre processus.
Donc, tout est juste. Vérifié.
P.S. Hors sujet, désolé. Je n'ai pas pu résister.
quel est le tableau spécifié par le paramètre dans ArrayCopySeries?
s'agit-il d'un tableau normal de valeurs, ou d'un tableau de pointeurs vers des valeurs ?
(c'est évidemment une question stupide, mais je n'ai pas programmé depuis 10 ans, encore moins en C, encore moins sous Windows)
et où lire tout cela ?
J'ai vraiment besoin...
Y a-t-il un moyen de... Je ne sais pas. L'invocation récursive de start() est-elle autorisée ?
C'est impossible. L'EA ne démarrera pas si le bouton est désactivé.
est autorisé.
Merci de votre réponse.
Eh bien, euh... Et maintenant... ?
Je ne sais pas... ou aller pour 5, mais hier... et aujourd'hui pour 3... les petits.
Je vais devoir me contenter de beaucoup de petits. Je ne voulais pas. Eh bien, quoi maintenant... :(
Ça semble si facile...
(ne faites pas attention à moi, la méditation éclabousse déjà le clavier)
C'est moi, ou c'est censé l'être ?
Ils sont et ont toujours été mis en valeur normalement. Je viens de vérifier la version 183 et la 187.