un bon profiler sous GPL :
http://www.codersnotes.com/sleepy/
Et pour les optims, il faut faire ca dans l'ordre, i.e. architecture > algorithmes > structures de donnees > "local" (naivete du code, astuces, etc.) > bas niveau
Ca ne sert a rien de passer des jours a optimiser a mort un truc qui au final n'a pas un impact notable sur les perfs principales.
Mais ici il semble que godrik a mis le doigt sur ce qui ne va pas :D
Pour le code en lui meme, qq remarques:
- preferer les static const aux define pour les constantes
- l'encapsulation laisse a desirer, avec tout un tas de trucs publics qui n'ont surement pas lieu de l'etre dans l'interface exposee au reste du code
- il y peu de source, donc pas grand chose a dire sur l'archi ; ta classe Moteur risque de souffrir du syndrome "monolithique" (un gros truc enorme qui sert a tout, et qui au final n'a pas vraiment de structure en soi). Donc bien penser la separation des concepts quand tu rajouteras des fonctionalites
L'archi et la conception logicielle est un GROS morceau en soi, donc il est difficile de resumer les conseils utiles, mais je citerais 2 references
- Large Scale C++ Software Design
- Design Patterns: Elements of Reusable Object-Oriented Software
qui te seraient utiles plus tard si tu souhaites approfondir, et qui repondront surement aux problemes que tu auras en commencant a faire des programmes plus consequents