Optimera minnesanvändningen vid arbete med stora filer med stora dataset
När man bygger en arbetsbok med stora dataset eller läser in en stor Microsoft Excel-fil är den totala mängden RAM som processen tar alltid ett bekymmer. Det finns åtgärder som kan anpassas för att hantera utmaningen. Aspose.Cells tillhandahåller några relevanta alternativ och API-anrop för att minska, minska och optimera minnesanvändningen. Dessutom kan det hjälpa processen att arbeta mer effektivt och köra snabbare.
Använd MemorySetting.MemoryPreference-alternativet för att optimera minnet som används för celldata för att minska den totala minneskostnaden. Vid uppbyggnad av stora dataset för celler kan det spara en viss mängd minne jämfört med att använda standardinställningen MemorySetting.Normal.
Optimera minne
Följande exempel visar hur du optimerar minnesanvändningen när du arbetar med stora data i Aspose.Cells för Node.js via 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");
Försiktighet
Standardalternativet MemorySetting.Normal tillämpas för alla versioner. För vissa situationer, som att bygga en arbetsbok med ett stort dataset för celler, kan alternativet MemorySetting.MemoryPreference optimera minnesanvändningen och minska minneskostnaden för programmet. Detta alternativ kan emellertid försämra prestandan i vissa specialfall såsom följer.
- Åtkomst av celler slumpmässigt och upprepade gånger: Den mest effektiva sekvensen för att komma åt cellernas samling är cell för cell i en rad, och sedan rad för rad. Särskilt om du får åtkomst till rader/celler via uppräknaren som erhållits från Cells, RowCollection och Row, kommer prestandan att maximera med MemorySetting.MemoryPreference.
- Infoga & Ta bort celler & rader: Observera att om det finns många infogningar/raderingar för celler/rader kommer prestandanedgraderingen att vara märkbar för MemorySetting.MemoryPreference-läget jämfört med MemorySetting.Normal-läget.
- Arbete med olika celltyper: Om de flesta cellerna innehåller strängvärden eller formler kommer minneskostnaden att vara densamma som MemorySetting.Normal-läge, men om det finns många tomma celler eller cellvärden är numeriska, booleska och så vidare, kommer MemorySetting.MemoryPreference-alternativet att ge bättre prestanda.