最適化され、32 Fedoraのスピードで実行するPythonスクリプトは、約27%から増加させることができます

4月に予定Pythonの開発者に驚きをもたらすことが期待されるのFedora 32リリース。変更Fedoraプロジェクトのページが表示されている導入 Pythonインタプリタを構築するとき、チームは追加-fno-semantic-interposition(コンパイラ/リンカフラグを)コンパイラ/リンカのフラグを、それが大幅にパフォーマンスが向上します、もちろん、特定のパフォーマンスの向上は、ワークロードに依存し、公式データは27%増までです。

PyPerformanceは5%〜20%増加し測定された性能のパフォーマンスの20〜27%から改善光線追跡テスト、等そのようなnbody、scimark、ジャンゴ、。

この変更は、ユーザーにもたらす、彼らはもはやlibpythonからオーバーライドシンボルにLD_PRELOADを使用できるようになることはありませんが、当局はそれが良い妥協の速度を高めるためであると考えています。

予想通りセマンティックGCCインサート上の文書記号を挿入する動的リンカを可能例えばELFとして(セマンティック介在)マーク、「いくつかのオブジェクトフォーマット、による。この手段は、シンボルをDSOに由来すること、コンパイラは、実装プロセスに伝播することができません、インライン化およびその他の最適化が、関連の関数や変数の変更の対象とする。この機能は、例えば、達成するための機能をデバッグするメモリ割り当てを書き換えることにより、有用であるが、それは使用してコード品質の面で高価であり、-fno-semantic-interpositionコンパイラは想定して、その関数の場合挿入が起こる挿入変数は、ケースが発生した場合、機能同じセマンティクス(および副作用)を有するカバー。同様に、次にコンストラクタは、同じ変数であろう。このフラグは、明示的に無効な関数をインライン宣言しましたまた、無効なシンボル弱い宣言。」

Fedoraのプロジェクトの開発者は、静的にパフォーマンスを向上させるためにPythonプログラムをリンクした研究では、これらの改善は、本来のFedora 32用に開発されたことが理解されます。その後、コミュニティからのフィードバックに起因する、彼らは範囲を狭め、ただのFedora 32のPythonを最適化したい、そして使用することを制限する-fno-semantic-interpositionのPythonを構築するために、コンパイラのフラグを。

おすすめ

転載: www.oschina.net/news/112780/fedora-32-python-optimized