Bonsoir � tous,
Voila je me posait quelques questions concernant les optimisations sur types en c++.
En c++ concr�tement � quoi correspond short, int, long etc.
J'ai cru comprendre que �a changeait fortement en fonction de l'archi, du syst�me, du compilo etc. J'ai cru comprendre que gr�ce � typedef il �tait possible de forcer la taille de ses types primaires. Est-ce portable comme m�thode.
Et puis surtout concr�tement est-ce que c'est rentable d'optimiser le stockage des infos sur le type le plus petit, ou bien �a n'impacte pas les perfs. Par exemple en mettant un short au lieu d'un int sur un truc qui ne sera pas tr�s �lev�, est-ce que �a va impacter les performances, ou bien le short sera converti en int lors du traitement par le proc ? ou pas ? Les compilos font-ils ce genre d'optis ? Est-ce que �a va concr�tement r�duire l'empreinte m�moire en stockant en short plut�t qu'en int ou bien �a ne sera pas le cas par l'alignement des mots en m�moire.
Autre question dans la m�me s�rie est-ce que l'utilisation de "champs de bits" peut r�duire l'empreinte m�moire et am�liorer les performances ?
Ex: Prenons un jeu de strate temps r�el, avec des milliers d'unit�s. Bah plut�t que d'avoir pleins de variables avec la vie des unites, leur armure, leur puissance d'attaque contre unites � terre, volantes (0 par exemple si �a ne peux tirer en l'air), si comme dans war3 �a g�re aussi les types de d�g�ts (per�ant / contondants) et les types d'armures l�g�res lourdes, cuir, maille, plaques etc, les vitesses de d�placement. �a commence a faire un sacr� gros paquet de variables surtout si l'ont multiplie par le nombre d'unit�s, pour des valeurs tr�s petites (Ex:Une unit� avec beaucoup de puissance d'attaque aura de 1 � 5 �toiles affich� � l'�cran, donc 3 bits suffisent pour cette information en m�moire).
Donc dans un cas comme �a est-ce que l'utilisation de "champs de bits" peuvent �tre int�ressant niveau consommation m�moire et au niveau des perfs. Ou �a ne sert � rien de ce faire chier ?
Certes plut�t que me pr�occuper de ces quelques broutilles je sais bien que je devrais me soucier d'abord par exemple de finaliser un programme et optimiser ensuite, etc. N�anmoins j'ai horreur des bloatwares et je ne voudrais pas en d�velopper moi m�me.
Merci d'avance pour vos r�ponses![]()
Partager