ウェブサイト検索

Go 1.25が実験的なガベージコレクタと新しいJSON APIを搭載してリリースされました


Go 1.25は、実験的なガーベジコレクション、encoding/json v2、そして新しいテスト/synctestのサポートを含む、主要なツールチェーンとランタイムの強化を伴ってリリースされました。

Goチームは、Go 1.25プログラミング言語の公式リリースを発表しました。これは、バージョン1.24の6ヶ月後に予定通り到着し、ツールチェーン、ランタイム、標準ライブラリのほぼすべての部分に多くの変更をもたらしました。

最も印象的な追加の一つは、新しい実験的なガベージコレクターで、小さなオブジェクトを処理する際のパフォーマンスを向上させるように設計されており、実際の作業負荷ではGCのオーバーヘッドを10〜40%削減する可能性があります。

それに加えて、もう一つの実験的機能であるencoding/json/v2パッケージが登場し、より高速なデコードと柔軟な設定を約束しています。どちらも今のところオプトインとなっており、開発者は早期にそれらを試し、最終決定前にフィードバックを提供するチャンスがあります。

Go 1.25はデフォルトでコンテナに対応したGOMAXPROCSを提供し、Kubernetesのような環境で実行されるアプリケーションが手動での調整なしにCPU制限に自動的に適応できることを意味します。その上、コンパイラはスライスの割り当てを迅速にし、DWARF5デバッグ情報を採用することで、バイナリサイズを削減し、大規模プロジェクトのリンクを高速化します。

ツールも愛されており、新しい go vet アナライザーが一般的な落とし穴を捉え、go.mod でディレクトリを無視する能力や、go doc -http を使用してローカルドキュメントサーバーを立ち上げるなどのいくつかの go コマンドの強化が行われています。また、通常の頭痛なしで同時コードをテストしやすくするための全く新しい testing/synctest パッケージも登場しました。

最後に、いつものように、暗号性能の向上から、より一貫したASN.1パース、さらには新しいネットワーキングとTLS機能まで、標準ライブラリの改善点が多数あります。古いmacOSバージョンのサポートは終了し、Go 1.25は壊れた32ビットWindows/ARMポートの排除前の最後のバージョンとなります。

発表を参照するか、リリースノートを確認してすべての変更について詳しく確認してください。