大規模なデータセットを扱う場合のメモリ使用量を最適化する
Contents
[
Hide
]
大規模なデータセットを含むワークブックを構築したり、大きなMicrosoft Excelファイルを読み込んだりする際、プロセスが必要とするRAMの総量は常に懸念事項です。Aspose.Cellsは、メモリ使用量を最適化するための関連するオプションとAPI呼び出しを提供します。これにより、プロセスがより効率的に動作し、より速く実行されるようになります。
セルデータのメモリ使用量を最適化するために、MemorySetting.Normalよりもメモリ使用量を減らすために使用します。大規模なデータセットを扱う際、デフォルトの設定を使用するよりも一定量のメモリを節約することができます。
メモリの最適化
以下の例は、大規模なデータを扱う際にメモリ使用量を最適化する方法を示しています Aspose.Cells for Node.js via C++。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//This example shows how to optimize memory usage while working with large data in Aspose.Cells for Node.js via C++ | |
const { Workbook, FileFormatType, MemorySetting } = require("aspose.cells.node"); | |
var workbook = new Workbook(FileFormatType.Xlsx); | |
// apply the setting to existing "Sheet1" | |
workbook.getWorksheets().get(0).getCells().setMemorySetting(MemorySetting.MemoryPreference); | |
// apply the setting globally | |
workbook.getSettings().setMemorySetting(MemorySetting.MemoryPreference); | |
workbook.save("out.xlsx"); |
注意
デフォルトオプションMemorySetting.Normalはすべてのバージョンで適用されます。大量のセルデータセットを持つワークブックを構築するなどの一部の状況では、メモリ使用を最適化し、アプリケーションのメモリコストを減らすことができるかもしれませんが、このオプションは特定の状況ではパフォーマンスを低下させる可能性があります。
- ランダムで繰り返しセルにアクセス: セルのコレクションにアクセスする最も効率的なシーケンスは、行ごとに1つずつセルにアクセスし、その後行ごとにアクセスすることです。特に、Cells、RowCollectionおよびRowから取得したEnumeratorで行/セルにアクセスする場合、パフォーマンスはMemorySetting.MemoryPreferenceで最適化されます。
- セルや行の挿入および削除:多くの挿入/削除操作がセル/行にある場合、MemorySetting.MemoryPreferenceモードでは、MemorySetting.Normalモードと比較してパフォーマンスの低下が顕著になります。
- 異なるセルタイプでの操作:ほとんどのセルが文字列値や数式を含む場合、メモリコストはMemorySetting.Normalモードと同じになりますが、空のセルが多いか、セルの値が数値、ブール値などの場合、MemorySetting.MemoryPreferenceオプションはパフォーマンスが向上します。