Les performances seront-elles meilleures (plus rapides) si je compile manuellement la source d'un composant logiciel pour la machine réelle sur laquelle il sera utilisé, par rapport à si la source a été compilée sur une autre plate-forme, peut-être pour de nombreuses architectures différentes? J'ai obtenu une bonne source de compilation de résultats que j'ai téléchargée et je me demande si cela est dû à la compilation au lieu de télécharger un binaire précompilé, ce qui est souvent le cas avec les mises à jour logicielles.
binary
compilation
Niklas
la source
la source
Réponses:
Dans de nombreux cas (sinon la plupart), oui. En effet, le compilateur peut produire du code natif optimisé pour ce processeur et cet environnement particuliers. Le code est plus "ciblé".
la source
La compilation à partir de sources vous donne l'avantage de définir les indicateurs du compilateur comme vous le souhaitez pour votre plate-forme spécifique. Le téléchargement d'un package qui a été compilé avec les mêmes paramètres exacts que le vôtre n'offrirait aucune différence, mais la modification des paramètres par défaut peut vous apporter de grandes améliorations.
Par exemple, si les binaires proposés au téléchargement ont été compilés pour le débogage (intentionnellement ou par erreur), l'activation d'une optimisation plus agressive améliorera les performances dans presque toutes les situations. En revanche, si le code compilé est optimisé au maximum, vous ne verriez aucune différence.
la source
Cela dépend vraiment des deux compilateurs et drapeaux de compilateur utilisés. Habituellement, les paramètres du compilateur et des indicateurs sur votre machine locale sont plus appropriés à votre machine particulière si vous avez des choses correctement configurées.
Mais, si, par exemple, le binaire pré-construit se trouvait être construit avec un compilateur d'optimisation bien meilleur (ou un benchmark spécial conçu avec des drapeaux ajustés pour ce morceau de code particulier et par chance approprié pour votre système) par rapport au compilateur sur votre système, il est possible que le compilateur sur votre système produise en fait de moins bonnes performances.
la source