123 votes

Qu'est-ce que "la liaison incrémentielle"?

J'ai regardé MSDN de Microsoft et tout autour du web, mais je n'ai toujours pas été en mesure d'obtenir vraiment une bonne idée de ce que c'est.

Signifie-t-il terminé le programme de chargement des Dll à des moments différents au cours de son exécution, comme revêtue de tous à la fois, dès le lancement?

Suis-je totalement manière? :)

132voto

Saxon Druce Points 9404

La liaison implique l'emballage de l'ensemble de l' .les fichiers obj construit à partir de vos fichiers source, ainsi que toute .lib fichiers de référence, dans votre sortie (par exemple .exe ou .dll).

Sans liaison incrémentielle, ce qui doit être fait à partir de zéro à chaque fois.

La liaison incrémentielle des liens de votre exe/dll est d'une manière qui rend plus facile pour l'éditeur de liens pour mettre à jour le fichier exe/dll lorsque vous faites un petit changement et de re-compiler.

Ainsi, la liaison incrémentielle juste le rend plus rapide pour compiler et lier de votre projet.

La seule exécution de l'effet qu'elle pourrait avoir, c'est qu'il peut rendre votre exe/dll est un peu plus gros et plus lent, comme il est décrit ici:

http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx

Edit: Comme mentionné par Logan, la liaison incrémentielle est également incompatible avec le lien de l'heure de génération de code , donc de perdre une possible optimisation de la performance.

Vous pouvez utiliser la liaison incrémentielle pour les versions de débogage pour le développement de la vitesse, mais le désactiver pour les versions release afin d'améliorer les performances d'exécution.

Retard chargé Dll peut être ce que vous envisagez d':

http://msdn.microsoft.com/en-us/library/151kt790.aspx

17voto

Cavaler Points 11

Aussi, très important, de liaison incrémentielle est une condition préalable pour l' Edit&Continue - possibilité de modifier votre code et de le recompiler à la volée, sans avoir à redémarrer.

Donc c'est une bonne chose à avoir sur les versions de débogage, mais pas release.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X