Python 3.15 ベータ版:より高速なスタートアップ、安定した自由スレッド化、新しい Tachyon プロファイラー

Python 3.15 の最初のベータ版が公開されました。最終リリースが10月1日に予定されている中、開発チームは機能フリーズを実施しており、これは今後のバージョンのアーキテクチャランドスケープが事実上確立されたことを意味しています。Python 3.15は、より高速なスタートアップシーケンス、自由スレッド化されたCPython(GILなし)のサポート強化、新しいプロファイラー、および改善されたJITコンパイラーを約束しています。

重要な進歩は、グローバルインタープリタロック(GIL)を持たないCPythonビルド用の安定したABIの導入です。Python 3.14は開発者にGILなしでインタープリタを実行する能力を提供しましたが、マルチコアアーキテクチャで並列処理を最適化しましたが、Python 3.15はC拡張機能の作成者に、フリースレッド化モードで複数のマイナーPythonバージョン用にモジュールをコンパイルする権限を与えます。チームはこの安定したABIを通じてアクセスできるのはCPython API全体のサブセットのみであることを注意していますが、これは各増分リリースごとにパッケージを再構築する必要を排除することで、拡張機能サポートを大幅に簡素化しています。

Python 3.15はさらに明示的な遅延インポートを導入しています。新しいlazy import json構文により、モジュールは最初の呼び出し時にのみロードできます。大規模なアプリケーションの場合、この手法はPythonが指定されたすべてのインポートの即座のロードとコンパイルを必須としなくなるため、スタートアップレイテンシを大幅に削減できます。歴史的には、このような動作は、コードの可読性を損なうことが多い迂回的な回避策を通じて実現されていました。

もう1つの注目すべき追加は、Tachyon プロファイラーです。このツールは、個々の関数呼び出しをインターセプトせずに、アクティブなプロセスからコールスタックをキャプチャします。ドキュメントではオーバーヘッドを無視できるものとして説明しており、Tachyon は最大 1,000,000 Hz の周波数でサンプリングでき、本番環境内でもパフォーマンスボトルネックの診断に最適です。

Python 3.15では、UTF-8はデフォルトのテキストエンコーディングとして制度化されています。開発者は最大の互換性が重要な場合に明示的にエンコーディングを定義することが引き続き奨励されていますが、この新しいデフォルトは、異なるプラットフォーム間でファイルとテキストを処理する際の独特のエラーを軽減することが期待されています。

CPython 集合体はインタープリタ最適化の絶え間ない追求を続けています。Python 3.14 でデビューしたが、時折のパフォーマンス低下のために本番環境での使用は当初は推奨されていなかった実験的 JIT コンパイラは、大幅な改良を経ています。現在のテレメトリは、x86-64 Linux では平均 8~9% のパフォーマンスの急上昇を示し、Apple Silicon を使用した macOS では 12~13% を示しています。特定のエッジケースでは最大 15% の減速がまだ発生する可能性がありますが、これらのメトリクスは最終的なリリースの前にさらに最適化される予定です。

このバージョンではすべての実験的取り組みが実を結んだわけではありません。Python 3.14で導入されたインクリメンタルガベージコレクターは、メモリリークの報告に続いて削除されました。メモリ解放の頻度を減らすことによってパフォーマンスを強化することを目的としていましたが、このメカニズムは Python 3.14.5 で戻されました。CPython チームは、正式な PEP プロセスを通じて厳密な評価が行われた場合、Python 3.16 でこの概念を再検討する可能性があります。Python 3.15 の変更に関する包括的なマニフェストは、プロジェクトの公式ドキュメント内で利用可能になりました。

翻訳元: https://meterpreter.org/python-3-15-beta-faster-startups-stable-free-threading-and-the-new-tachyon-profiler/

ソース: meterpreter.org