Leniwe ładowanie drzewa stron

HotPDF może zachować zwykłe załadowane drzewo stron PDF jako zwartą tabelę zastępczą i rozwiązywać poszczególne strony tylko wtedy, gdy API po raz pierwszy ich potrzebuje

Aktywacja

LazyPageTreeThreshold domyślnie wynosi 4096 stron i stosuje się do prawidłowych drzew stron, których korzeń wystawia użyteczną strukturę /Count i /Kids

Ustaw próg na 0 przed ładowaniem, aby wyłączyć leniwą obsługę drzewa stron

Pliki poniżej progu i źle uformowane drzewa nadal przechodzą przez istniejącą pilną ścieżkę odzyskiwania

Dostęp losowy

Pierwszy dostęp do strony podąża za wartościami /Count poddrzew, aby pominąć niepowiązane gałęzie, i rozwięzi obiekty pośrednie przez lokalny dla dokumentu indeks adresowania otwartego

Rozwiązana strona jest przechowywana w swoim slocie zastępczym, więc powtarzany dostęp jest bezpośrednim trafieniem pamięci podręcznej

Zwykłe API załadowanych stron materializują żądaną stronę przejrzyście, podczas gdy MaterializeLoadedPage pozwala wywołującym jawnie przygotować znaną stronę

Pełna ekspansja i mutacja

MaterializeAllLoadedPages rozszerza pozostałe drzewo w kanonicznej kolejności stron

Operacje, które strukturalnie dodają, usuwają, kopiują, zastępują, przenoszą, odwracają, zamieniają, przebudowują lub zapisują załadowane strony, wykonują pełną ekspansję przed mutowaniem lub serializacją grafu stron

Zachowuje to istniejące semantyki mutacji i zapisu, utrzymując dostęp zorientowany na odczyt proporcjonalny do głębokości przebytej gałęzi

Telemetria

GetLoadedPageTreeStatistics raportuje magazyn zastępczy, zmaterializowane strony, głębokość i pracę przechodzenia, pojemność indeksu obiektów, aktywność pamięci podręcznej i pełne ekspansje bez wymuszania materializacji

Brama regresji obejmuje 100 000 stron z sufitem wzrostu zestawu roboczego 256 MiB i sufitem pierwszego dostępu losowego 500 ms na obsługiwanych celach Windows

Zobacz także: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics