Оптимизация использования памяти при работе с большими файлами с большими наборами данных
При создании книги с большими наборами данных или чтении большого файла Microsoft Excel общий объем оперативной памяти, которую займет процесс, всегда вызывает беспокойство. Существуют меры, которые можно адаптировать для справления с этим вызовом. Aspose.Cells предоставляет некоторые соответствующие варианты и вызовы API для снижения, уменьшения и оптимизации использования памяти. Кроме того, это может помочь процессу работать более эффективно и быстрее.
Используйте опцию MemorySetting.MemoryPreference, чтобы оптимизировать использование памяти для данных ячеек и уменьшить общую стоимость памяти. При создании большого набора данных для ячеек это может сэкономить определенное количество памяти по сравнению с использованием параметров по умолчанию MemorySetting.Normal.
Оптимизация памяти
В следующем примере показано, как оптимизировать использование памяти при работе с большими данными в 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 может оптимизировать использование памяти и снизить стоимость памяти для приложения. Однако в некоторых специальных случаях это может снизить производительность, таких как следующие.
- Доступ к ячейкам в произвольном порядке и повторно: Самая эффективная последовательность доступа к коллекции ячеек - путем перебора ячеек по одной строке, а затем строка за строкой. Особенно, если вы получаете доступ к строкам/ячейкам с помощью перечислителя, полученного из Cells, RowCollection и Row, производительность будет максимальной с MemorySetting.MemoryPreference.
- Вставка и удаление ячеек и строк: Обратите внимание, что если выполняется много операций вставки/удаления для ячеек/строк, производительность в режиме MemorySetting.MemoryPreference будет значительно снижена по сравнению с режимом MemorySetting.Normal.
- Работа с различными типами ячеек: Если большинство ячеек содержат строковые значения или формулы, стоимость памяти будет такой же, как в режиме MemorySetting.Normal, но если есть много пустых ячеек, или значения ячеек являются числовыми, логическими и т.д., опция MemorySetting.MemoryPreference обеспечит лучшую производительность.