[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...