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