Lazy sayfa ağacı yükleme

HotPDF, sıradan bir yüklü PDF sayfa ağacını kompakt bir placeholder tablosu olarak tutabilir ve tek tek sayfaları, bir API ilk kez ihtiyaç duyduğunda çözebilir

Etkinleştirme

LazyPageTreeThreshold varsayılan olarak 4096 sayfadır ve kökü kullanılabilir bir /Count ile /Kids yapısı sunan geçerli sayfa ağaçlarına uygulanır

Lazy sayfa ağacı işlemeyi devre dışı bırakmak için yüklemeden önce eşiği 0 olarak ayarlayın

Eşiğin altındaki dosyalar ve bozuk ağaçlar, mevcut eager kurtarma yolundan devam eder

Rastgele erişim

Bir sayfaya ilk erişim, alakasız dalları atlamak için alt ağaç /Count değerlerini takip eder ve indirect object'leri belgeye özgü bir open-addressed index üzerinden çözer

Çözülen sayfa kendi placeholder yuvasına yazılır; böylece tekrarlanan erişim doğrudan bir cache hit olur

Sıradan yüklü sayfa API'leri istenen sayfayı şeffaf biçimde materialize eder; MaterializeLoadedPage ise çağıranın bilinen bir sayfayı açıkça hazırlamasına izin verir

Tam genişletme ve mutasyon

MaterializeAllLoadedPages, kalan ağacı kanonik sayfa sırasına göre genişletir

Yüklü sayfaları yapısal olarak ekleyen, silen, kopyalayan, değiştiren, taşıyan, ters çeviren, takas eden, yeniden kuran veya kaydeden işlemler, sayfa graph'ını mutasyona uğratmadan ya da serileştirmeden önce tam genişletme yapar

Bu, okuma odaklı erişimi geçilen dal derinliğiyle orantılı tutarken mevcut mutasyon ve kaydetme semantiğini korur

Telemetri

GetLoadedPageTreeStatistics, placeholder depolamasını, materialize edilen sayfaları, dolaşım derinliğini ve işini, object-index kapasitesini, cache etkinliğini ve tam genişletmeleri materialization'ı zorlamadan raporlar

Bir regression gate, desteklenen Windows hedeflerinde 100.000 sayfayı, 256 MiB working-set büyüme tavanı ve 500 ms ilk rastgele erişim tavanıyla kapsar

Ayrıca bakınız: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics