Ist die Leistung besser (schneller), wenn ich die Quelle für eine Softwarekomponente für den tatsächlichen Computer, auf dem sie verwendet wird, manuell kompiliere, als wenn die Quelle auf einer anderen Plattform kompiliert wurde, möglicherweise für viele verschiedene Architekturen? Ich habe einige gute Ergebnisse beim Kompilieren der Quelle erhalten, die ich heruntergeladen habe, und ich frage mich, ob dies auf das Kompilieren zurückzuführen ist, anstatt eine vorkompilierte Binärdatei herunterzuladen, was bei Software-Updates häufig der Fall ist.
binary
compilation
Niklas
quelle
quelle
Antworten:
In vielen (wenn nicht den meisten) Fällen ja. Dies liegt daran, dass der Compiler nativen Code erzeugen kann, der für diese bestimmte CPU und Umgebung optimiert ist. Der Code ist "gezielter".
quelle
Das Kompilieren aus Quellen bietet Ihnen den Vorteil, dass Sie die Compiler-Flags so einstellen können, wie Sie es für Ihre spezifische Plattform wünschen. Das Herunterladen eines Pakets, das mit denselben genauen Einstellungen wie Ihres kompiliert wurde, bietet keinen Unterschied. Wenn Sie jedoch die Einstellungen von den Standardeinstellungen ändern, können Sie große Verbesserungen erzielen.
Wenn beispielsweise die zum Herunterladen angebotenen Binärdateien (absichtlich oder versehentlich) zum Debuggen kompiliert wurden, verbessert das Aktivieren einer aggressiveren Optimierung die Leistung in fast allen Situationen. Wenn andererseits der kompilierte Code maximal optimiert wird, sehen Sie keinen Unterschied.
quelle
Dies hängt wirklich von den beiden verwendeten Compilern und Compiler-Flags ab. Normalerweise sind die Compiler- und Flag-Einstellungen auf Ihrem lokalen Computer besser für Ihren bestimmten Computer geeignet, wenn Sie die Dinge richtig konfiguriert haben.
Wenn zum Beispiel die vorgefertigte Binärdatei mit einem viel besser optimierenden Compiler (oder einem Benchmark-Special, das mit Flags entwickelt wurde, die auf diesen bestimmten Code abgestimmt sind und zum Glück für Ihr System geeignet sind) im Vergleich zum Compiler erstellt wurde Dann ist es möglich, dass der Compiler auf Ihrem System tatsächlich zu einer schlechteren Leistung führt.
quelle