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

本記事では、現時点でのLTSの最新版「.NET 8」において、DioDocs for Excel(ディオドック)とその他のExcel操作ライブラリ(ClosedXML、OpenXml、EPPlus、NPOI)を使用して、ワークシートにデータを追加した際の測定結果を紹介します。

はじめに

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

実行環境

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

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

実行する内容

このコンソールアプリケーションで実行する処理は、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 8で測定した結果です。各ライブラリの「Mean(Arithmetic mean of all measurements)」の数値を比較してみると、他のライブラリよりもDioDocsが速いことが確認できます。

測定結果(.NET 8)

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

測定結果(.NET 6)

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

次は少し処理を増やして測定してみます。データを追加するセル範囲とセルに追加する文字列を以下のように更新します。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 8および .NET 6で測定した結果です。各ライブラリの「Mean(Arithmetic mean of all measurements)」の数値を比較してみると、先ほどと同じように他のライブラリよりもDioDocsが速いことが確認できます。

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

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

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

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

さいごに

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

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

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