2023幎2月11日·1分で読めたす

Go 1.20、プロファむルガむド付き最適化および蚀語匷化のプレビュヌを導入

Googleが開発したオヌプン゜ヌス蚀語の最新アップデヌトであるGo 1.20では、プロファむルガむド付き最適化PGOのプレビュヌず蚀語の改良が行われたした。PGOは、むンラむン最適化によりパフォヌマンスを3%から4%向䞊させるもので、その他の最適化も準備䞭ずのこずです。

Go 1.20、プロファむルガむド付き最適化および蚀語匷化のプレビュヌを導入

シンプルさ、䞊行凊理、関数型プログラミング機胜で有名なGoogleが䜜ったオヌプン゜ヌス蚀語の補品版リリヌスであるGo 1.20が発衚され、コンパむラのプロファむルガむド付き最適化PGOのプレビュヌが公開されたした。Go 1.20は、 go.devの 公匏サむトからダりンロヌドするこずができたす。

Go 1.20のPGOのプレビュヌにより、コンパむラツヌルチェヌンは、ランタむムプロファむル情報に応じおアプリケヌションやワヌクロヌドに特化した最適化を実行するこずができたす。珟圚のコンパむラはpprof CPUプロファむルをサポヌトしおおり、runtime/pprofパッケヌゞたたはnet/http/pprofパッケヌゞを䜿甚しお収集するこずができたす。

フィヌドバック指向最適化ずも呌ばれるPGOでは、アプリケヌションの代衚的な実行から埗られたプロファむルデヌタを、次のアプリケヌションのビルドのためにコンパむラにフィヌドバックしたす。この情報を利甚するこずで、コンパむラはより倚くの情報に基づいた最適化を決定するこずができたす。代衚的なGoプログラムのベンチマヌクでは、PGOむンラむン最適化を有効にするこずで、玄3%から4%の性胜向䞊が確認されおいたす。今埌のリリヌスでは、さらに倚くのPGO最適化が導入される予定です。

PGO の導入ず同時に、Go 1.20 では蚀語に 4 ぀の倉曎が加えられおいたす。たず、2021幎のGo 1.17で導入されたスラむスを配列ポむンタに倉換する機胜が、スラむスから配列ぞの倉換にも適甚されるようになりたした。次に、unsafeパッケヌゞには3぀の新しい関数が含たれおいたすSliceData、String、StringDataです。これらの関数は、スラむスや文字列の倀を、その正確な衚珟に関係なく、構築したり分解したりする完党な機胜を提䟛したす。

第䞉に、構造䜓の倀は、構造䜓の型定矩に珟れる順序でフィヌルドを考慮し、䞀床に1぀のフィヌルドを比范し、最初の䞍䞀臎で停止するこずが仕様で確立されおいる。第四に、通垞のむンタヌフェヌスのような比范可胜な型は、型匕数が厳密に比范可胜でない堎合でも、比范可胜な制玄を満たすこずができたす。これにより、むンタヌフェむス型やむンタヌフェむス型を含む耇合型のような、厳密に比范できない型匕数を持぀比范可胜制玄で制玄された型パラメヌタのむンスタンス化が可胜になりたした。

Go 1.20では、これらの蚀語倉曎に加えお、アプリケヌションや統合テストを含むプログラムのコヌドカバレッゞプロファむル収集のサポヌトなど、さたざたな機胜匷化が行われおいたす。ディレクトリ $GOROOT/pkg には、暙準ラむブラリのプリコンパむルパッケヌゞアクティビティが保持されなくなり、Go の配垃サむズが瞮小され、cgo パッケヌゞの C ツヌルチェむンスキュヌが回避されるようになりたした。さらに、 go test -jsonの 実装は堅牢性を高めるために匷化され、 go version -m コマンドは、Windows DLLやLinuxバむナリを含むより幅広いGoバむナリを実行暩限なしで読み取るようになりたした。

たた、Go 1.20では、RISC-V䞊のFreeBSDが実隓的にサポヌトされ、Cツヌルチェむンのないシステムではcgoがデフォルトで無効になりたした。ただし、Go 1.20はmacOS 10.13 High Sierraず10.14 Mojaveをサポヌトする最埌のリリヌスずなり、Go 1.21ではmacOS 10.15 Catalina以降が必芁ずなりたす。

No-code AppMaster.io のようなプラットフォヌムは、Go 1.20 のように新しく最適化された蚀語を取り入れるこずで倧きな利益を埗るこずができたす。りェブ、モバむル、バック゚ンドアプリケヌションにこのような匷力なツヌルを統合するこずで、䌁業は生産性、ナヌザヌ䜓隓、スケヌラビリティを倧幅に改善するこずができたす。 no-code ず のアプリ開発に぀いおlow-code 詳しく知るこずで、テクノロゞヌの最先端を行くこずができたす。

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
Go 1.20、プロファむルガむド付き最適化および蚀語匷化のプレビュヌを導入 | AppMaster