.NET 10と.NET 8でパフォーマンスを比較してみる(SPREAD for Windows Forms)

2025年11月に.NET 10が公開されました。本記事では、最新のLTSバージョンである .NET 10とひとつ前の .NET 8におけるSPREAD for Windows Forms 19.0J(スプレッド)(以下SPREAD)のパフォーマンスを比較します。業務アプリケーションで広く利用されているSPREADの動作速度やメモリ使用量が、.NETのバージョンアップによってどのように変化するのかを検証します。

実行する環境

パフォーマンスの測定には、.NET 10および .NET 8およびで動作するコンソールアプリケーションを作成して使用しています。測定に使用した実行環境は以下のとおりです。

SPREADを使用するには、製品版またはトライアル版をインストールして製品の認証を行う必要があります。トライアル版は以下からダウンロード可能です。

Visual Studio 2026でのプロジェクトの作成方法や、NuGetパッケージのインストール方法は以下の記事を参考にしてください。

計測に使用するプロジェクト

今回の計測に使用したプロジェクトは以下で公開しています。.NET 10と .NET 8用のそれぞれのプロジェクトが含まれています。

プロジェクトはコンソールアプリケーションとなっており、BenchmarkDotNetのBenchmark属性が含まれるメソッドは以下の2つです。

  • OpenExcel
  • SetStyle

OpenExcelメソッドではExcelファイルのインポートを行っています。

[Benchmark]
public void OpenExcel()
{
    _spread.OpenExcel(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\PerformanceTest_withStyle.xlsx", ExcelOpenFlags.TruncateEmptyRowsAndColumns);

    Application.DoEvents();
}

SetStyleメソッドではVBA互換のAPIでスタイルの設定を行っています。

[Benchmark]
public void SetStyle()
{
    var wsheet = _spread.ActiveSheet.AsWorksheet();
    var backColor = GrapeCity.Spreadsheet.Color.FromArgb(Color.LavenderBlush.ToArgb());
    var foreColor = GrapeCity.Spreadsheet.Color.FromArgb(Color.Blue.ToArgb());

    for (int i = 0; i < wsheet.RowCount; i++)
    {
        for (int j = 0; j < wsheet.ColumnCount; j++)
        {
            wsheet.Cells[i, j].Interior.Color = backColor;
            wsheet.Cells[i, j].Font.Color = foreColor;
        }
    }

    Application.DoEvents();
}

計測結果

上記アプリケーションで計測した結果は以下となります。

.NET 10

.NET 8

処理時間を示すMeanの数値を比較してみると、計測のための2つのメソッドの両方で .NET 10のパフォーマンスが良くなっていることが確認できます。一方、メモリ使用量を表すAllocatedは .NET 10と .NET 8ではほとんど変化していませんでした。

さいごに

本記事では、SPREAD for Windows Formsを .NET 10と .NET 8で動作させた場合のパフォーマンスを測定した結果を紹介しました。これからアプリケーションを .NET Frameworkから .NETへの移行を検討、あるいは .NETのバージョン更新を検討する際の参考にしていただければと思います。

弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /