Question

Aujourd'hui, je trouve que la bibliothèque statique compilé je travaille sur est beaucoup plus grande dans Mode de presse que Debug . Je l'ai trouvé très surprenant, puisque la plupart du temps, le contraire se produit (pour autant que je peux dire).

La taille en mode débogage est un peu plus de 3 Mo (c'est un projet assez important), mais dans la version il va jusqu'à 6,5 MB. Quelqu'un peut-il me dire ce qui pourrait être la raison? J'utilise les paramètres habituels de Visual Studio (2008) pour un projet de bibliothèque statique, changé presque rien dans les paramètres de configuration de construction. Dans la version, j'utilise / O2 et « taille de Faveur ou de la vitesse » est réglé sur « Ni ». Pourrait le / O2 ( « maximiser la vitesse ») provoquent la .lib finale soit beaucoup plus grande que la version de débogage avec toutes les informations de débogage dans ce?

EDIT: Informations complémentaires:
Mise au point:
- toute l'optimisation du programme: Non
- activer le niveau de fonction de liaison: Non

Publication:
- Optimisation de programme complet: Code à temps lien Activer la génération
- activer le niveau de fonction de liaison: Oui

Était-ce utile?

La solution

La différence est précisément en raison de la génération de code de lien. Lisez le chapitre Link-Temps de génération de code Compilateurs - Ce que tout programmeur devrait savoir au sujet Optimisations du compilateur sur MSDN - il dit essentiellement que avec LTCG activé le compilateur produit beaucoup plus de données qui est emballé dans la bibliothèque statique pour que l'éditeur de liens peut utiliser que des données supplémentaires pour générer un meilleur code de la machine tout en reliant réellement le fichier exécutable <. / p>

Puisque vous avez LTCG off dans la configuration de débogage de la bibliothèque produite est sensiblement plus petite car il ne dispose pas des données supplémentaires.

PS: originale Lien (ne fonctionne pas à 09/11/2015)

Autres conseils

L'optimisation pourrait être la question ici, a notamment créé automatiquement les fonctions de inline seront plus mais plus rapide dans la version de débogage.

Personnellement, je ne l'ai jamais vu un APB de libération soit plus grand qu'un PDB de débogage. Même chose pour beaucoup LIBs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top