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

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

В следующем примере показано, как оптимизировать использование памяти при работе с большими данными в Aspose.Cells для Node.js через C++.

//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 применяется ко всем версиям. В некоторых случаях, таких как создание книги с большим набором данных для ячеек, параметр MemorySetting.MemoryPreference может оптимизировать использование памяти и снизить стоимость памяти для приложения. Однако в некоторых специальных случаях это может снизить производительность, таких как следующие.

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