Luie paginatree-lading
HotPDF kan een gewone geladen PDF-paginaboom behouden als een compacte placeholder-tabel en afzonderlijke pagina's pas oplossen wanneer een API ze voor het eerst nodig heeft
Activering
LazyPageTreeThreshold is standaard 4096 pagina's en geldt voor geldige paginabomen waarvan de wortel een bruikbare /Count- en /Kids-structuur blootlegt
Stel de drempel vóór het laden in op 0 om luie paginatree-afhandeling uit te schakelen
Bestanden onder de drempel en onjuist gevormde bomen lopen door het bestaande gretige herstelpad
Willekeurige toegang
De eerste toegang tot een pagina volgt de substamboom-/Count-waarden om niet-gerelateerde takken over te slaan en lost indirecte objecten op via een document-lokaal open-geadresseerde index
De opgeloste pagina wordt opgeslagen in zijn placeholder-slot, zodat herhaalde toegang een directe cache-hit is
Gewone geladen-pagina-API's materialiseren de gevraagde pagina transparant, terwijl MaterializeLoadedPage aanroepers in staat stelt een bekende pagina expliciet voor te bereiden
Volledige expansie en mutatie
MaterializeAllLoadedPages vouwt de resterende boom in canonieke paginavolgorde uit
Bewerkingen die geladen pagina's structureel toevoegen, verwijderen, kopiëren, vervangen, verplaatsen, omkeren, wisselen, herbouwen of opslaan voeren volledige expansie uit voordat ze de paginagraaf muteren of serialiseren
Dit behoudt de bestaande mutatie- en opslagsemantiek, terwijl leesgerichte toegang evenredig blijft met de doorlopen takdiepte
Telemetrie
GetLoadedPageTreeStatistics rapporteert placeholder-opslag, gematerialiseerde pagina's, traversal-diepte en -werk, object-indexcapaciteit, cache-activiteit en volledige expansies zonder materialisatie te forceren
Een regressiepoort bestrijkt 100.000 pagina's met een groeigrensdak op de werkset van 256 MiB en een plafond van 500 ms voor de eerste willekeurige toegang op ondersteunde Windows-doelen
Zie ook: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics