[C/C++] calcul vs acces mémoire

Le côté programmation du développement d'un jeu vidéo.

calcul vs acces mémoire

Messagepar deathangel » 04 Déc 2008, 17:49

salut à tous

je suis en train d'essayer d'optimiser mes codes C++ afin de gagner des secondes de traitement et j'arrive sur un problème, choisir si il est plus rapide de calculer une valeur à chaque fois ou la stocker en mémoire....
la puissance actuelle des processeurs encouragerait à la recalculer (j'entends par là des calculs simples) plutot que d'aller voir en mémoire en prenant en compte le temps de latence de celle-ci.
Est-ce que quelqu'un aurait une idée de ce ratio calcul/temps ou toute information concernant les optimisations de ce genre ?

merci d'avance
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar Atréides » 04 Déc 2008, 18:36

Tout dépend du calcul, je suppose. Tu pourrais essayer d'effectuer le calcul N milliards de fois avec chacune des deux possibilités, et chronométrer.
Souvent présent sur #gcn, irc.langochat.net
Site web : seuret . com (programmation, biostatistiques, CP Explo 2/1)
Avatar de l’utilisateur
Atréides
 
Messages: 1349
Inscription: 13 Mar 2005, 13:12
Localisation: Suisse

Messagepar olympi » 06 Déc 2008, 01:36

Ça dépend : du code, de la plateforme, du compilo, etc.

Sinon, en règle général je dirais que pour un ordi il préférable de privilégier le stockage en mémoire, vu que le processeur à des registres, un cache de niveau 1 et un autre de niveau 2 (pris dans l'ordre de la lantence la plus faible à la plus grande) pour compenser la lenteur de l'accès mémoire.

Sinon fait des tests sur différents cas, pour jauger la chose.

Et si tu veux des conseils, montre nous le code ça sera plus simple de parler sur du concret ;).
www.indedependant.info actualités et critiques du jeu vidéo indépendant.
Clavier bépo : « soyez bépoète des mots » :)
Bruit d'une bulle qui remonte à la surface d'un liquide visqueux.
Avatar de l’utilisateur
olympi
Hello World, I'm new !
 
Messages: 132
Inscription: 10 Avr 2005, 20:21
Localisation: Laval

Messagepar deathangel » 06 Déc 2008, 22:45

ben disons que le code, c'est une lib de 10 fichiers de 200 lignes chacun en gros ^^
je vais recoder ma lib avec plus de calcul et moins de lecture, on verra déjà ce que ca donne.
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar olympi » 07 Déc 2008, 20:42

Certes, mais sachant que 20% du code prend 80% du temps d'exécution (mesure empirique communément admise), ça permet déjà de bien réduire le nombre d'endroit à optimiser. Il faut donc que tu fasses du profilling.
www.indedependant.info actualités et critiques du jeu vidéo indépendant.
Clavier bépo : « soyez bépoète des mots » :)
Bruit d'une bulle qui remonte à la surface d'un liquide visqueux.
Avatar de l’utilisateur
olympi
Hello World, I'm new !
 
Messages: 132
Inscription: 10 Avr 2005, 20:21
Localisation: Laval


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 invités

cron