[C++]vitesse et optimisation
Bonjour,
Je suis en train d'essayer d'optimiser au maximum mon code et de l'accelerer le plus possible (en utilisant Visual C++) et pour cela j'aurai certaines questions a vous poser:
- entre * et ->
pour acceder a un element d'un pointeur, vaut il mieux faire (*toto).getName() ou bien toto->getName()?
- affectation dans une map
vaut il mieux faire un maMap[key] = value ou maMap.insert(pair<key, value>(key, value))?
- stockage dans une map ou un vecteur
vaut il mieux stocker un element ou un pointeur sur un element dans une map ou un vecteur?
- stockage
quels sont les structures de donnees a privilegie pour accelerer le programme (map, hashmap, vector, set, list, array....)?
Merci pour votre aide et vos conseils
Yann
Re: [C++]vitesse et optimisation
Salut.
Citation:
Envoy� par yanndublanche
Je suis en train d'essayer d'optimiser au maximum mon code et de l'accelerer le plus possible (en utilisant Visual C++)
... Alors tes optimisations, si tu ne changes aucun algorithme ni m�thode g�n�rale d'impl�mentation, seront n�gligeables par rapport aux optimisations de Visual C++. Pour savoir comment acc�l�rer ton programme, tu dois savoir ce qui prend le plus de temps, et travailler uniquement sur "cette fichue fonction qui prend 98% du temps".
Pour le stockage, �� d�pend ce que tu veux faire: une list est meilleure qu'un vector si tu fais beaucoup de suppressions et d'ajouts.. Un vector sera meilleur qu'une list si tu as besoin d'un acc�s al�atoire (r�cup�rer le 3000�me �l�ment, puis le 40i�me, puis le 20i�me, etc). Une hastable est int�ressante si tu as beaucoup d'enregistrements (> 1000)... Bref il n'y a pas de solution plus rapide "dans l'absolu", car si c'�tait le cas, tu te doutes bien que ce serait la seule disponible...