Optimisation de l utilisation de la mémoire lors du travail avec de gros fichiers contenant de grands ensembles de données

Optimisation de la mémoire

Lecture de gros fichiers Excel

L’exemple suivant montre comment lire un gros fichier Microsoft Excel en mode optimisé.

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

Écriture de gros fichiers Excel

L’exemple suivant montre comment écrire un grand ensemble de données dans une feuille de calcul en mode optimisé.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiate a new Workbook
Workbook wb = new 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.MemorySetting = MemorySetting.MemoryPreference;
// 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 cells = wb.Worksheets[0].Cells;
cells.MemorySetting = MemorySetting.MemoryPreference;
// 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;
// .........
// Input large dataset into the cells of the worksheet.
// Your code goes here.
// .........

Attention

L’option par défaut, MemorySetting.Normal est appliquée pour toutes les versions. Pour certaines situations, telles que la création d’un classeur avec un grand ensemble de données pour les cellules, l’option MemorySetting.MemoryPreference peut optimiser l’utilisation de la mémoire et réduire le coût de mémoire pour l’application. Cependant, cette option peut dégrader les performances dans certains cas spéciaux comme suit.

  1. Accéder de manière aléatoire et répétée aux cellules: La séquence la plus efficace pour accéder à la collection de cellules est cellule par cellule dans une rangée, puis rangée par rangée. Surtout, si vous accédez aux lignes/cellules par l’énumérateur acquis à partir de Cells, RowCollection et Row, les performances seraient maximisées avec MemorySetting.MemoryPreference.
  2. Insertion et suppression de cellules et de lignes : Veuillez noter que s’il y a beaucoup d’opérations d’insertion/suppression de Cellules/Lignes, la dégradation des performances sera notable en mode MemoryPreference par rapport au mode Normal.
  3. Opérer sur différents types de cellules : Si la plupart des cellules contiennent des valeurs de chaîne ou des formules, le coût de la mémoire sera le même qu’en mode Normal, mais s’il y a beaucoup de cellules vides, ou que les valeurs des cellules sont numériques, booléennes, et ainsi de suite, l’option MemorySetting.MemoryPreference offrira de meilleures performances.