lordkraken
Messages postés9Date d'inscriptionvendredi 9 septembre 2005StatutMembreDernière intervention20 décembre 2005
-
20 déc. 2005 à 11:46
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
20 déc. 2005 à 15:42
Bonjour,
j'essaie de minimiser la taille du code. d'une petite DLL que je programme actuellement.
Or j'utilise depuis hier des vector, issus directement de la classe STL.
Et là, au surprise, j'ai constaté que la taille de ma DLL n'a pas bougé d'un iota.
Que dois je en conclure ?
Que la STL est toujours liée au code compilé ?
Que la STL est chargée dynamiquement lors de l'exécution de mon code ?
Enfin bref, quelle incidence l'utilisation de la STL a sur mon code ? Temp d'exécution ? Espace mémoire ?
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 20 déc. 2005 à 14:28
salut,
la taille depend aussi d'une option de compilation.
sous v7, (sous vc6 ca doit etre a peu pres pareil), dans les settings de ton projet, tu vas dans C/C++, Code Generation, et RunTime library.
si le choix est MultiThreaded DLL, une partie du code de la STL (la partie non template en fait, comme les assignations, etc.) ne sera pas inclus dans ton exe mais sera appelé via une DLL système (msvcprt60.dll sous vc6, msvcprt71.dll sous vs7.1).
si le choix est MultiThreaded ou SingleThreaded, tout le code necessaire sera injecté dans ton exe, et il peut alors legerement grossir.
A noter que l'utilisation de n'est pas une utilisation de la STL mais de la librairie standard du c++ (ce qui est différent, la STL etant contenu dans la lib standard mais pas l'inverse) -> inclure iostream peut faire grossir significativement ton exe par contre, car il y a plein de fonctions virtuelles etc. dont le code doit donc etre ajouté ds l'exe.
L'utilisation de la STL (la partie template de la lib standard) ne fait finalement pas trop grossir les exe en general, car les seules fonctions dont tu fais appel dans ton code sont connues a la compilation, et seules celles la sont ajoutées.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 20 déc. 2005 à 15:42
en DLL avec 2 funcs exportées on a Msvcr80.dll de dépendance en 6 Ko sans faire sauter le CRT.
C'était une bonne occas, je n'avais pas encore eu à le faire sur VS 2005.
Résultat des courses: virer le CRT fait encore gagner 1 Ko et aucun runtime à livrer.