SPREAD for Windows Forms 15.0J(スプレッド)には .NET 6用と .NET Framework 4.8用とのアセンブリが用意されています。本記事では、SPREAD for Windows Formsを .NET 6と .NET Framework 4.8でそれぞれ動作させた場合のパフォーマンスを評価した結果を紹介します。
実行する環境
パフォーマンスを測定する環境として、Azure VM(Azure Virtual Machines)を使用しています。今回はBシリーズにある「B2ms」(vCPU:2、メモリ:8GB)を実行環境とします。
計測に使用するプロジェクト
今回の計測に使用するプロジェクトは以下で公開しています。
このプロジェクトは以下の構成になっており、こちらの構成でパフォーマンスを測定しています。
- SPREAD for Windows Forms 15.0J SP1 + .NET 6
- SPREAD for Windows Forms 15.0J SP1 + .NET Framework 4.8
- SPREAD for Windows Forms 12.0J SP9 + .NET Framework 4.8
ソリューションファイル(*.sln)とプロジェクトファイル(*.csproj)はフレームワーク(およびバージョン)ごとに用意し、計測部分のソースコードは共有しています。
計測方法
以下の手順で3回計測を行いその平均値を算出しています。なお、2回目以降の計測を行う場合にはアプリケーションをいったん終了し、最初から開始しています。
- アプリケーションの開始
- Visual Studioで[Release]でビルドし[デバッグなし]で開始
- すべての計測で「描画とイベントの一時停止」を使用)
- Excelファイルのインポート
- ファイルリストの表示
- フィルタの実行
- スタイルの設定(VBA互換のAPI)
- アプリケーションの終了
計測結果
上記アプリケーションで計測した結果は以下となります。
.NET 6と .NET Framework 4.8の比較
処理時間
「.NET 6」では「.NET Framework 4.8」に比べて以下の3つで「処理時間」のパフォーマンスが良くなっています。
- Excelファイルのインポート
- ファイルリストの表示
- スタイルの設定(VBA互換のAPI)
メモリ消費
「15.0J + .NET 6」の「Excelファイルのインポート」と「スタイルの設定(VBA互換のAPI)」は「15.0J + .NET Framework 4.8」に比べてメモリを消費しています。これらは処理時間が改善している項目なので、「.NET 6」ではメモリを多く使用して処理時間を短縮していると考えられます。
15.0Jと12.0Jの比較
「15.0J + .NET Framework 4.8 」と「12.0J + .NET Framework 4.8 」を比較するとほぼ差はありません。
さいごに
本記事ではSPREAD for Windows Formsを .NET 6と .NET Framework 4.8で動作させた場合のパフォーマンスを測定した結果を紹介しました。これから .NET Frameworkから .NETへ移行を検討する際の参考にしていただければと思います。
また、.NET Framework 4.8から .NET 6への移行方法や、その他の移行情報については以下のページで解説していますので、こちらも参考にしていただければと思います。
製品の機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。
また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。