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