GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

新版SPREADの「パフォーマンスを改善しました」はどの程度なのか?

2018年2月21日に、ExcelライクなUIを持つアプリケーションを短期間で開発できる表計算・グリッドコンポーネント「SPREAD for Windows Forms」の新バージョン「11.0J」が発売となりました。

11.0Jではデータ処理エンジンを刷新し、大幅なパフォーマンス改善を実現しています。今回はどのくらい改善されているか実際に検証してみたいと思います。

検証内容

今回の記事ではCSVファイルからデータを取り込むときのパフォーマンスを見てみます。以下のようなアプリケーションでSPREADに10,000件超のCSVデータを読み込み、10.0Jと11.0Jそれぞれの読み込み速度とメモリ使用量を比較してみます。

f:id:GrapeCity_dev:20180301153032p:plain:w450

検証機スペック

OS: Windows 10 Pro
CPU: Intel(R) Core(TM) i7-6600U
RAM: 16GB

検証結果

読み込み速度は以下のようにシンプルにSystem.Diagnostics.Stopwatch クラスを使って測定します。

C#

System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
fpSpread1.ActiveSheet.LoadTextFile(@"SalesData.csv", FarPoint.Win.Spread.TextFileFlags.None, FarPoint.Win.Spread.Model.IncludeHeaders.None, System.Environment.NewLine, ",", "");
sw.Stop();
System.Windows.Forms.MessageBox.Show(Math.Round(sw.Elapsed.TotalSeconds, 2).ToString() + "秒で" + fpSpread1.ActiveSheet.RowCount + "件読み込みました。", "読込完了!");

メモリ使用量はVisual Studioの診断ツールを使用して、読み込み前、読み込み後でスナップショットを取得し差分を取ります。

10.0Jの実行結果

f:id:GrapeCity_dev:20180301155853p:plain:w450

f:id:GrapeCity_dev:20180301165106p:plain:w450

11.0Jの実行結果

f:id:GrapeCity_dev:20180301155928p:plain:w450

f:id:GrapeCity_dev:20180301165127p:plain:w450

まとめ
バージョンデータ件数経過時間(秒)使用ヒープサイズの増分(KB)
10.0J10,56019.7312,963.48
11.0J10,56019.25341.14

読み込み速度は若干11.0Jのほうが速かったですが、ほとんど差は見られませんでした。一方ヒープサイズの増加量は大幅に改善されていることがわかりました。大量データを扱う場合、OutOfMemoryExceptionの心配はつきものですが、11.0Jではその点も心配なさそうです。

ファイルの読み込み以外にも、フィルタ処理、多数の表示項目に対するスタイルの設定などで旧バージョンに比べ大幅に処理速度が向上しています。是非トライアル版をダウンロードして、SPREAD for Windows Formsの進化を体感ください。

「SPREAD for Windows Forms 11.0J」
「SPREAD for Windows Forms 11.0J」ClickOnceデモ
「SPREAD for Windows Forms 11.0J」トライアル版

グレープシティ株式会社ではエンジニア経験者を幅広く募集しています。