was bedeutet --enable-Optimierungen zu tun, während der Kompilierung von python?
Ich versuche zu kompilieren Python 3.6 auf einem arm-basierten Linux-Maschine,
./configure
Ausgänge dieser:
Wenn Sie möchten, eine release-Version mit allen Optimierungen aktiv (LTO, PGO, usw.),
bitte führen Sie./configure --enable-optimizations
.
was bedeutet --enable-optimizations
tun?
- Was ich gelesen habe ist, dass es dreht sich auf etwas, genannt
Profile Guided Optimizations
. Diese Art der Optimierung dauert eine lange Zeit zum konfigurieren, aber die daraus resultierende python-binary interpreter ist 10% schneller bei der Ausführung von Python-code. Überprüfen Sie diese Referenz (eigentlich ein github issue) - Issue #160
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses flag ermöglicht Profile-guided optimization (PGO) und die Link Time Optimization (LTO).
Beide sind teuer Optimierungen, die verlangsamen den build-Prozess, sondern erzielen einen deutlichen Geschwindigkeits-boost (etwa 10 bis 20% von dem, was ich erinnere mich gelesen zu haben).
Die Diskussion, was diese genau entzieht sich meiner Kenntnis und wohl zu breit für eine einzige Frage. So oder so, Lesen Sie ein bisschen über die LTO von der die Dokumentation über GCC, die eine Umsetzung für Sie und beginnen auf PGO durch das Lesen seine wiki-Seite.
Siehe auch die relevanten Fragen eröffnet, auf die Python-Bug-Tracker, Hinzugefügt diese:
--enable-optimizations
Flagge, um das configure-Skript, das es ermöglicht, die oben genannten Optimierungen.)Wie bereits von @Shuo in einem Kommentar und erklärte in Problem 28032, LTO ist nicht immer aktiviert mit der
--enable-optimizations
Flagge. Einige Plattformen (abhängig von der unterstützten version vongcc
) schaltet in das Konfigurations-Skript.Zukünftigen Versionen dieses flag wird wahrscheinlich immer haben Sie jedoch aktiviert, so ist es ziemlich sicher zu reden, Sie beide hier.
--with-lto
wird nicht funktionieren. Es ist gcc ist alt.