.NET 9でDioDocs for Excelのベンチマークを確かめてみる

本記事では、.NET Conf 2024でリリースのアナウンスがあった .NETの最新バージョン「.NET 9」において、DioDocs for Excel(ディオドック)とその他のExcel操作ライブラリ(ClosedXML、OpenXml、EPPlus、NPOI)を使用して、ワークシートにデータを追加する処理のベンチマークを測定した結果を紹介します。

はじめに

以前の記事(2024年2月19日)では .NET 8でベンチマークを測定していました。今回は改めて .NET 9で同じ処理を実行して測定しています。

実行環境

ベンチマークの測定には、.NET 9で動作するコンソールアプリケーションを作成して使用しています。測定に使用した実行環境は以下のとおりです。

測定に使用したコンソールアプリケーションのソースコードは以下に置いています。

実行する内容

このコンソールアプリケーションで実行する処理は、DioDocs for Excelをはじめとする各ライブラリを使用して「ワークシートで100 x 100の範囲のセルに文字を設定する」処理を記載しています。ベンチマークの測定にはBenchmarkDotNetを使用しています。

以下はDioDocs for Excelを使用した場合のコードですが、他のライブラリでも同じように上記の処理を実装しています。

private const int ColumnNum = 100;
private const int RowNum = 100;

public void DioDocs()
{
    var workbook = new GrapeCity.Documents.Excel.Workbook();

    var worksheet = workbook.ActiveSheet;
    for (var i = 1; i <= ColumnNum; i++)
    {
        for (var j = 1; j <= RowNum; j++)
        {
            worksheet.Range[i, j].Value = "Hello World!";
        }
    }

    workbook.Save(Stream.Null);
}

測定結果

.NET 9で測定した結果です。各ライブラリの「Mean(Arithmetic mean of all measurements)」の数値を比較してみると、他のライブラリよりもDioDocsが速いことが確認できます。

測定結果(.NET 9)

また、.NET 8での測定結果と比較してみると、DioDocsは .NET 9で測定した結果の方が速いことも確認できます。

測定結果(.NET 8)

処理を増やして実行してみる

次は少し処理を増やして測定してみます。データを追加するセル範囲とセルに追加する文字列を以下のように更新します。DioDocs for Excelを使用した場合のコードですが、他のライブラリでも同じように処理を実装しています。

private const int ColumnNum = 100;
private const int RowNum = 1000;

public void DioDocs()
{
    var workbook = new GrapeCity.Documents.Excel.Workbook();

    var worksheet = workbook.ActiveSheet;
    for (var i = 1; i <= ColumnNum; i++)
    {
        for (var j = 1; j <= RowNum; j++)
        {
            worksheet.Range[i, j].Value = "Hello World!" + i.ToString() + j.ToString();
        }
    }

    workbook.Save(Stream.Null);
}

測定結果

.NET 9で測定した結果です。各ライブラリの「Mean(Arithmetic mean of all measurements)」の数値を比較してみると、先ほどと同じように他のライブラリよりもDioDocsが速いことが確認できます。

測定結果(.NET 9、処理内容を更新)

また、.NET 8での測定結果と比較してみると、DioDocsに限らずNPOI以外のライブラリにおいても .NET 9で測定した結果の方が速いことも確認できます。

測定結果(.NET 8、処理内容を更新)

今後もDioDocsの次期バージョン「V8J」や、.NETの次期LTSバージョン「.NET 10」などがリリースされたタイミングで、再度測定して結果をお届けしたいと思います。

さいごに

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

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

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