Lazy inläsning av sidträd
HotPDF kan behålla ett vanligt inläst PDF-sidträd som en kompakt platshållartabell och lösa enskilda sidor endast när ett API först behöver dem
Aktivering
LazyPageTreeThreshold är som standard 4096 sidor och gäller giltiga sidträd vars rot exponerar en användbar /Count- och /Kids-struktur
Ange tröskeln till 0 före inläsning för att inaktivera lazy-sidträdshantering
Filer under tröskeln och felformade träd fortsätter genom den befintliga ivriga återhämtningssökvägen
Slumpmässig access
Den första åtkomsten till en sida följer delträdets /Count-värden för att hoppa över orelaterade grenar och löser indirekta objekt genom ett dokumentlokalt open-addressed-index
Den lösta sidan lagras i sin platshållarslott, så upprepad access är en direkt cacheräff
Vanliga inlästa-sid-API:er materialiserar den begärda sidan transparent, medan MaterializeLoadedPage låter anropare förbereda en känd sida explicit
Full expansion och ändring
MaterializeAllLoadedPages expanderar det återstående trädet i kanonisk sidordning
Operationer som strukturellt lägger till, tar bort, kopierar, ersätter, flyttar, vänder, byter, bygger om eller sparar inlästa sidor utför full expansion innan de ändrar eller serialiserar sidgrafen
Detta bevarar befintlig ändrings- och sparsemantik samtidigt som läsorienterad åtkomst förblir proportionell mot det travesterade grenadens djup
Telemetri
GetLoadedPageTreeStatistics rapporterar platshållarlagring, materialiserade sidor, travesteringsdjup och -arbete, objektindexkapacitet, cacheaktivitet och fulla expansioner utan att tvinga fram materialisering
En regression-grind täcker 100 000 sidor med ett övre tak på 256 MiB tillväxt av arbetsuppsättning och ett övre tak på 500 ms för första slumpmässiga access på stödda Windows-mål
Se även: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics