2018年2月21日に、ExcelライクなUIを持つアプリケーションを短期間で開発できる表計算・グリッドコンポーネント「SPREAD for Windows Forms」の新バージョン「11.0J」が発売となりました。
11.0Jではデータ処理エンジンを刷新し、大幅なパフォーマンス改善を実現しています。今回はどのくらい改善されているか実際に検証してみたいと思います。
検証内容
今回の記事ではCSVファイルからデータを取り込むときのパフォーマンスを見てみます。以下のようなアプリケーションでSPREADに10,000件超のCSVデータを読み込み、10.0Jと11.0Jそれぞれの読み込み速度とメモリ使用量を比較してみます。
検証機スペック
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の実行結果
11.0Jの実行結果
まとめ
バージョン | データ件数 | 経過時間(秒) | 使用ヒープサイズの増分(KB) |
---|---|---|---|
10.0J | 10,560 | 19.73 | 12,963.48 |
11.0J | 10,560 | 19.25 | 341.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」トライアル版