ニュース

「C# Dev Kit」が大刷新、読み込みは最大180倍に、サーバーのメモリ消費は最大約85%減

11月の正式提供が予定されている「.NET 11」にあわせたアーキテクチャー変更

公式ブログ「.NET Blog」のアナウンス

 「C# Dev Kit」のアーキテクチャーが刷新され、大幅なパフォーマンス改善を実現したとのこと。米Microsoftが10月6日(現地時間)、公式ブログ「.NET Blog」で発表した。11月の正式提供が予定されている「.NET 11」にあわせた変更であるという。

 「C# Dev Kit」は、「Visual Studio Code」でC#開発を行う際に必要なものをひとまとめにした拡張機能。ライセンスモデルは「Visual Studio」と共通で、個人開発者や教育・オープンソース開発では、「Visual Studio Community」と同じ条件で無償利用できる。組織での利用については、「Visual Studio Professional」「Visual Studio Enterprise」のサブスクリプションや「GitHub Codespaces」に含まれる。

 新しくなった「C# Dev Kit」は、プレリリース版として提供中。「Visual Studio Code」の[拡張機能]ビューで、「C# Dev Kit」をプレリリースチャネルへ切り替えれば利用できる。バージョンは「.NET」にあわせ、従来のv3.3からv11.0になった。

[プレリリース バージョンへの切り替え]ボタンから、新しい「C# Dev Kit」を試せる

 主な改善点は、以下の通りだ。

大規模ソリューションの読み込みが高速に

 「dotnet/orleans」(155プロジェクト)の場合、編集中のファイルで言語サポートが使えるようになるまでが最大50.3秒から0.53秒に(最大95倍)、ソリューション全体の読み込みは、50.3秒から2.3秒に(22倍)高速化した。「microsoft/aspire」(407プロジェクト)の場合は、前者が最大84.1秒から0.47秒に(最大180倍)、後者が84.1秒から3.0秒に(28倍)高速化。さらに、初回読み込み時にプロジェクトのキャッシュを作成し、2回目以降の読み込みを高速化する。編集中のファイルを優先して読み込み、残りはバックグラウンドで処理する。

増分ビルドが高速に

 「Visual Studio」にある「fast up-to-date checks」(高速な最新チェック)と「Build Acceleration」の機能が使えるようになった。「microsoft/aspire」の場合、変更なしのビルドは34.4秒から0.88秒に(39倍)、C#ファイル1つを変更したビルドは36.1秒から2.1秒に(17倍)高速化。

メモリ消費を約8割削減

 これまで6つのマネージドプロセスに分かれていた処理が、1つのプロセスに統合された。統合プロセスは「Native AOT」でコンパイルされたネイティブの実行ファイルで、ランタイムの読み込みも、JITコンパイルも不要。メモリ消費が大幅に減った。なお、この比較は「C# Dev Kit」のサーバープロセスが対象で、「Visual Studio Code」本体や、別プロセスで動作するC#言語サービス「Roslyn」のメモリ消費は含まれない。

機能的改善も

 そのほかにも、「.csproj」「.props」「.targets」ファイルの編集支援が追加される。「C#」のコードを編集するときと同じように、入力補完、診断、定義へ移動、クイックフィックス、セマンティックハイライトが使える。

 また、プロジェクトが読み込めないときの原因を特定する「C# Doctor」を導入。必要なSDKやランタイムが入っていない、ターゲットフレームワークが使えない、パッケージの復元に失敗した、使っているパッケージに既知の脆弱性がある、といった指摘を1か所にまとめ、解決策を案内してくれる。