Оптимизация использования памяти при работе с большими файлами с большими наборами данных

Оптимизация памяти

Следующий пример показывает, как оптимизировать использование памяти при работе с большими данными в Aspose.Cells для Node.js via Java.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//This example shows how to optimize memory usage while working with large data in Aspose.Cells for Node.js via Java
var aspose = aspose || {};
aspose.cells = require("aspose.cells");
var workbook = new aspose.cells.Workbook(aspose.cells.FileFormatType.XLSX);
// apply the setting to existing "Sheet1"
workbook.getWorksheets().get(0).getCells().setMemorySetting(aspose.cells.MemorySetting.MEMORY_PREFERENCE);
// apply the setting globally
workbook.getSettings().setMemorySetting(aspose.cells.MemorySetting.MEMORY_PREFERENCE);
// Input large dataset into the cells of the worksheet. Your code goes here.
workbook.save("output.xlsx");

Предостережение

По умолчанию, опция MemorySetting.NORMAL применяется ко всем версиям. В некоторых случаях, таких как создание книги с большим набором данных для ячеек, параметр MemorySetting.MEMORY_PREFERENCE может оптимизировать использование памяти и снизить стоимость памяти для приложения. Однако в некоторых специальных случаях это может снизить производительность, таких как следующие.

  1. Доступ к ячейкам в произвольном порядке и повторно: Самая эффективная последовательность доступа к коллекции ячеек - путем перебора ячеек по одной строке, а затем строка за строкой. Особенно, если вы получаете доступ к строкам/ячейкам с помощью перечислителя, полученного из Cells, RowCollection и Row, производительность будет максимальной с MemorySetting.MEMORY_PREFERENCE.
  2. Вставка и удаление ячеек и строк: Обратите внимание, что если выполняется много операций вставки/удаления для ячеек/строк, производительность в режиме MemorySetting.MEMORY_PREFERENCE будет значительно снижена по сравнению с режимом MemorySetting.NORMAL.
  3. Работа с различными типами ячеек: Если большинство ячеек содержат строковые значения или формулы, стоимость памяти будет такой же, как в режиме MemorySetting.NORMAL, но если есть много пустых ячеек, или значения ячеек являются числовыми, логическими и т.д., опция MemorySetting.MEMORY_PREFERENCE обеспечит лучшую производительность.