il y aurait vraiment un gain de performance si on compilait tout en un espèce de gros binaire?
Il y a parfois (rarement à mon avis) quelques intérêts à déjà compiler en statique plutôt qu'en dynamique pour améliorer certaines performances (dans le cas, uniquement, où le temps de calculer les adresses indirectes pour appeler les fonctions dans la lib dynamique sont gênantes, ainsi que le temps mis pour charger le code une fois son adresse calculée).
Pour optimiser un code, en général optimiser le temps d'accès au code lui même (par exemple bien gérer le cache d'instructions ou utiliser des libs statiques plutôt que dynamiques) n'est pas la première chose à faire.
Sinon l'intérêt de compiler en un gros binaire serait surtout plus de compiler tout d'une seule fois, pour que les passes d'optimisation du compilateur se fassent sur l'ensemble du code et non pas petit morceau par petit morceau (options -fwhole-program pour gcc, maintenant il y a la link-time optimization dans gcc-4.5.0). Mais je n'ose pas imaginer les ressources nécessaires : déjà que compiler une distro en entier prend du temps, alors la compiler en une seule fois sans en suivre la progression en courant le risque qu'une petite erreur fasse planter la compilation au bout de 3 jours et qu'il faille la reprendre à 0... très peu pour moi.
[^] # Re: Intérêt ?
Posté par khivapia . En réponse à la dépêche Sortie de Longene 0.3.0. Évalué à 2.
Il y a parfois (rarement à mon avis) quelques intérêts à déjà compiler en statique plutôt qu'en dynamique pour améliorer certaines performances (dans le cas, uniquement, où le temps de calculer les adresses indirectes pour appeler les fonctions dans la lib dynamique sont gênantes, ainsi que le temps mis pour charger le code une fois son adresse calculée).
Pour optimiser un code, en général optimiser le temps d'accès au code lui même (par exemple bien gérer le cache d'instructions ou utiliser des libs statiques plutôt que dynamiques) n'est pas la première chose à faire.
Sinon l'intérêt de compiler en un gros binaire serait surtout plus de compiler tout d'une seule fois, pour que les passes d'optimisation du compilateur se fassent sur l'ensemble du code et non pas petit morceau par petit morceau (options -fwhole-program pour gcc, maintenant il y a la link-time optimization dans gcc-4.5.0). Mais je n'ose pas imaginer les ressources nécessaires : déjà que compiler une distro en entier prend du temps, alors la compiler en une seule fois sans en suivre la progression en courant le risque qu'une petite erreur fasse planter la compilation au bout de 3 jours et qu'il faille la reprendre à 0... très peu pour moi.