Optimierung des Speicherverbrauchs beim Arbeiten mit großen Dateien und großen Datensätzen

Speicheroptimierung

Lesen großer Excel-Dateien

Das folgende Beispiel zeigt, wie eine große Microsoft Excel-Datei im optimierten Modus gelesen wird.

from aspose.cells import LoadOptions, MemorySetting, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Specify the LoadOptions
opt = LoadOptions()
# Set the memory preferences
opt.memory_setting = MemorySetting.MEMORY_PREFERENCE
# Instantiate the Workbook
# Load the Big Excel file having large Data set in it
wb = Workbook(dataDir + "Book1.xlsx", opt)

Schreiben großer Excel-Dateien

Das folgende Beispiel zeigt, wie Sie ein großes Datenset im optimierten Modus in ein Arbeitsblatt schreiben.

from aspose.cells import MemorySetting, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Instantiate a new Workbook
wb = Workbook()
# Set the memory preferences
# Note: This setting cannot take effect for the existing worksheets that are created before using the below line of code
wb.settings.memory_setting = MemorySetting.MEMORY_PREFERENCE
# Note: The memory settings also would not work for the default sheet i.e., "Sheet1" etc. automatically created by the Workbook
# To change the memory setting of existing sheets, please change memory setting for them manually:
cells = wb.worksheets[0].cells
cells.memory_setting = MemorySetting.MEMORY_PREFERENCE
# Input large dataset into the cells of the worksheet.
# Your code goes here.
# .........
# Get cells of the newly created Worksheet "Sheet2" whose memory setting is same with the one defined in WorkbookSettings:
cells = wb.worksheets.add("Sheet2").cells

Vorsicht

Die Standardoption, MemorySetting.NORMAL wird für alle Versionen angewendet. In einigen Situationen, wie dem Erstellen einer Arbeitsmappe mit einem großen Datensatz für Zellen, kann die Option MemorySetting.MEMORY_PREFERENCE den Speicherverbrauch optimieren und die Speicherkosten für die Anwendung verringern. Diese Option kann jedoch in einigen speziellen Fällen die Leistung beeinträchtigen.

  1. Zufälliger und wiederholter Zugriff auf Zellen: Die effizienteste Sequenz für den Zugriff auf die Zellensammlung ist Zelle für Zelle in einer Zeile und dann Zeile für Zeile. Insbesondere wenn Sie Zeilen/Zellen über den Enumerator, der von Cells, RowCollection und Row erworben wurde, abrufen, wird die Leistung mit MemorySetting.MEMORY_PREFERENCE maximiert.
  2. Einfügen & Löschen von Zellen & Zeilen: Bitte beachten Sie, dass bei vielen Einfüge/Löschvorgängen für Zellen/Zeilen die Leistungseinbuße im MemoryPreference-Modus im Vergleich zum Normal-Modus spürbar sein wird.
  3. Arbeiten mit verschiedenen Zelltypen: Wenn die meisten Zellen Zeichenfolgen oder Formeln enthalten, wird der Speicherverbrauch wie im Normal-Modus sein, aber wenn es viele leere Zellen gibt oder Zellwerte numerisch, boolesch usw. sind, wird die Option MemorySetting.MEMORY_PREFERENCE eine bessere Leistung bieten.