Microsoftは7月20日(米国時間)、「Profile-guided optimization in .NET Core 2.0|.NET Blog」において、.NET Core 2.0で採用されている高速化技術「PGO (Profile-Guided Optimization )」について伝えた。この技術はC++コンパイラでより最適化されたコードを生成するために使われているネイティブコンパイラ技術。.NET Core 2.0にも同様の技術が適用されており、すべてのユーザは特定の処理をすることなくこの高速化技術の恩恵を受けていると説明している。

.NET Core 2.0 - Profile-Guided Optimization技術

また、これまではJIT32 for x86とRyuJIT for x64という2つのJIT技術を使ってきたが、このバージョンからはすべてのプラットフォームでRyuJITに統一したという説明も掲載されている。RyuJITは古い実装となるJIT32よりも多くの場面で優れた高速化を実現するものの、起動時に時間がかかるという特徴を備えている。PGO技術と併用することでこの点を改善し、性能を向上させつつ起動速度も高速化することに実現したとしている。

起動時間の短縮化 - Linuxではまだ恩恵が不十分

.NET Core 2.0はWindowsのみならずLinuxに対しても提供されているが、Linuxではこれら技術がまだ効果的に機能していない部分があり、今後も改善の余地が残されている。また、PGO技術は現在適用している以外の部分にも適用が可能だとのことで、今後のリリースでさらに性能の向上が期待できる。