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