Zwolnione grafy obiektów stron

Duże zadania sekwencyjne mogą wyrzucać czyste grafy obiektów należące do stron po każdej stronie, zachowując dość metadanych źródła, żeby zmaterializować stronę ponownie na żądanie

Granica zwalniania

ReleaseLoadedPageObjectGraph zwalnia wybrany pośredni korzeń strony i bezpośrednio posiadane zagnieżdżone obiekty pod nim

Przejście nie podąża za linkami pośrednimi, więc współdzielone fonty, obrazy, słowniki zasobów, węzły drzewa stron i inne obiekty międzystronicowe pozostają własnością załadowanego dokumentu

Wpisy display listy i rastra specyficzne dla strony są usuwane na tej samej granicy

Bezpieczeństwo i retencja

Strony dirty, must-write, aktywne lub w inny sposób nieprzeładowywalne są zachowywane i raportowane zamiast być wyrzucanymi

Bezpośrednie korzenie stron wsparte plikiem przeładowują się ze swojego zwalidowanego offsetu referencji krzyżowych, a korzenie skompresowane przez indeksowaną ścieżkę członka strumienia obiektów

Zwykłe korzenie ładowane ze strumienia lub szyfrowane, bez źródła nadającego się do niezależnego odtworzenia, pozostają rezydentne

Przetwarzanie sekwencyjne

for PageIndex := 0 to PDF.LoadedPageCount - 1 do
begin
  ProcessLoadedPage(PDF, PageIndex);
  PDF.ReleaseLoadedPageObjectGraph(PageIndex);
end;

Fixture regresji 100 000 stron szczytuje na 69,3 MiB na Win32, nie pokazuje wzrostu w stanie ustalonym, a potem ponownie materializuje zwolnioną stronę z jej oryginalnym numerem obiektu i ramkami stron

Współbieżność

Dostęp do grafu załadowanego dokumentu pozostaje uszeregowany przez wywołującego

Nie zwalniaj strony, gdy inny wątek renderuje, podgląda lub mutuje tę samą instancję dokumentu

Zobacz też: ReleaseLoadedPageObjectGraph, GetLoadedPageObjectGraphReleaseStatistics, THPDFPageObjectGraphReleaseStatistics, Leniwe ładowanie drzewa stron, Ograniczona pamięć podręczna strumieni obiektów