Liaison au niveau fonction (commutateur / Gy dans VC ++) – À quoi sert-il?

Quels sont les avantages de l’utilisation de ce commutateur dans une grande solution de VS (200 projets VC)?

D’après ce que je comprends, cela affecte principalement la taille des fichiers binarys résultants. mais en plus des fichiers binarys plus petits, FLL pourrait-il également aider à réduire les dépendances entre les projets?

Comment FLL affecte généralement les temps de construction?

J’apprécierais également une explication éclairée sur FLL dans VC. L’explication de MSDN est assez brève.

Puisque vous avez lié l’explication de MSDN, vous savez que / Gy garantit que toutes les fonctions sont regroupées dans leur propre COMDAT. Le principal avantage est que, si vous avez des fonctions identiques, l’éditeur de liens peut toutes les réduire en un seul morceau de code (“pliage COMDAT”). Cela peut avoir des conséquences très importantes lorsque vous avez plusieurs fonctions identiques, ce qui est souvent le cas lorsque vous écrivez du C ++ moderne qui utilise beaucoup de modèles.

Mis à part la taille réduite de l’exécutable résultant en raison du repliement de COMDAT et de l’élimination des COMDAT non référencés, il n’y a pas d’autre effet de / Gy. Pour être précis, cela n’aide pas à réduire les dépendances entre les projets.

Le coût est une légère augmentation du temps de compilation (similaire à d’autres indicateurs de l’optimiseur). Généralement pas quelque chose que vous remarquerez.