Cerințe de memorie
Aspose.Words oferă o gamă largă de caracteristici pentru a lucra cu documente în diferite formate. Este important să se observe că nu există nicio limită la dimensiunea maximă a unui fișier de document care Aspose.Words poate procesa sau redarea. Singura limitare este cantitatea de RAM (memorie) disponibila pe partea ta.
Câtă memorie are nevoie Aspose.Words
De obicei, Aspose.Words are nevoie de câteva ori mai multă memorie decât dimensiunea documentului pentru a construi un model al documentului în memorie. De exemplu, dacă dimensiunea documentului tău este de 1 MB, Aspose.Words are nevoie de 10-20 MB de RAM pentru a construi Document Object Model (DOM) în memorie. Multiplicatorul depinde de format deoarece unele formate sunt mai compacte decât altele. De exemplu, DOCX este mai compact decât DOC și RTF iar DOC este mai compact decât RTF.
Nu există nici o modalitate exactă de a estima cât de multă memorie consumă Aspose.Words în mod real în timpul procesării unui anumit fișier de document. După cum știți, .NET stochează date în clase. Fiecare instanță de clasă folosește memorie pentru scopuri interne ale CLR-ului. Astfel, orice paragraf sau text formatat (chiar și acesta constă într-un singur caracter) ocupă o parte din memorie după încărcarea în DOM. În plus, motorul de colectare a gunoiului .NET utilizează un algoritm complex pentru a determina cel mai bun moment pentru efectuarea unei colectări de memorie, făcând dificilă determinarea consumului real de memorie.
Cum să calculezi cantitatea de memorie
Să luăm în considerare două documente:
- DOCX A document – 0.35 MB dimensiune (2 mii pagini), text doar
- DOCX “B” document - 0.35 MB dimensiune (doar 1 pagină), cu imagine PNG în interior
Așa cum știți, multe formate moderne precum DOCX, ODT, etc. sunt arce de fișiere ZIP simple. Deci, obţinem următorul algoritm de calcul:
- Desziparea… Fişierul “Unzipped document A” are 20 MB dimensiune, fişierul “document B” are 0.4 MB dimensiune
- Încărcarea documentului în modelul (construirea lui Document Object Model – DOM):
- Crearea DOM a primului document " A " necesită 49 MB dimensiune
- Crearea DOM a celei de-a doua documente ‘B’ necesită doar 2 MB dimensiune.
- Măsurarea cantității de memorie necesare pentru a reda aceste documente ca fișiere PDF. Pentru această operație, Aspose.Words necesită:
- 294 MB pentru documentul “A”
- 7 MB pentru documentul “B”
Deci, așa cum puteți vedea, nu există nicio dependență liniară de mărimea documentului de intrare. Există mulți factori care pot afecta dimensiunea RAM necesară - formatul documentului, complexitatea și structura sa, numărul de imagini și formatul acestora, și multe alte factori.
Cum să calculezi multiplicatorul de memorie cel mai exact
Experimentele cu mii de documente reale arată că în mod tipic Aspose.Words necesită cu mult mai multă memorie decât dimensiunea medie a unui document pentru a construi un model de document în memorie și pentru a efectua operații simple precum conversia între formate de flux, mail merge, parsarea, înlocuirea și așa mai departe. Uneori vorbim despre un multiplu de 2 și alteori de 20.
“Operații mai complexe, cum ar fi redarea (convertirea în format de pagină fixă), actualizarea câmpurilor, împărțirea paginii și altele, pentru unele documente necesită 20 de ori mai multe resurse decât memoria alocată documentului încărcat în Aspose.Words DOM”.
Dacă rezultatele profilării indică o problemă de memorie posibilă în Aspose.Words, vă rugăm să contactați Support Team nostru și includeți toate informațiile de diagnosticare.