ニュース
「Python 3.11」がリリース、4年で5倍の高速化を目指す「Faster Cpython」計画が始動
「Microsoft Store」にも「Python 3.11」バイナリが追加
2022年10月31日 09:45
「Python 3.11.0」が、予定より3週間遅れの10月24日に正式リリースされた。年次のメジャーバージョンアップで、「Python」の高速化プロジェクト「Faster Cpython」の成果が取り込まれている。「pyperformance」を用いたベンチマークでは、「CPython 3.10」より平均で25%ほど高速化されているという。ワークロードによっては最大で10~60%のパフォーマンスアップが見込めるとのこと。
「Faster Cpython」は昨年10月、Mark Shannon氏の提起で開始された計画。これまであまり焦点が当てられてこなかった「CPython」の起動と実行の高速化に注力し、今後4年間に1.5倍ずつ、つまり最終的には5倍高速化することを目的としており、200万ドル程度と見積もられる資金はMicrosoftも協力している。
従来の「Python」は、パフォーマンスを要する場合はC言語でモジュールを記述するというスタイルが一般的であったが、もし「Faster Cpython」が実現すれば、「Python」だけでも十分なパフォーマンスを出すことができる。ハードウェアやクラウドへの支出、テストにかかる時間などの効果も期待できるだろう。
そのほかの変更は、以下の通り。
- PEP 657:トレースバックの詳細エラー表示
- PEP 654:組み込みの例外型にExceptionGroupを追加。「try ~ except*」で利用できる
- PEP 680:「tomllib」が標準ライブラリに追加され、TOMLをパースできるように
- gh-90908:「asyncio」にタスクグループを導入
- gh-34627:正規表現で(?>...)、*+、 ++、 ?+、{m,n}+をサポート
言語機能も引き続き強化されている。
- PEP 673:定義中のクラスを示す型「typing.Self」が追加(Self Type)
- PEP 646:可変長ジェネリクス
- PEP 675:任意の文字列定数(LiteralString)
- PEP 655:TypedDictの要素に省略の可否(typing.Required/typing.NotRequired)を指定
- PEP 681:データクラス変換(typing.dataclass_transform)
「Python」は1991年、オランダ出身のプログラマーGuido van Rossum氏によって考案されたクロスプラットフォーム対応のインタープリター型プログラミング言語。コードブロックを字下げ(インデント)で表現する文法が特徴で、可読性が高いコードをコンパクトに記述できる。さまざまな用途に利用できる汎用言語だが、近年は機械学習の分野で著しい普及を見せている。
バイナリは現在、公式サイト「python.org」から無償でダウンロード可能。Windows 10/11向けは、「Microsoft Store」からも入手できる。