Frigivna sidobjektgrafer
Stora sekventiella jobb kan kassera rena sidägda objektgrafer efter varje sida samtidigt som tillräcklig källmetadata behålls för att materialisera sidan igen vid behov
Frigivningsgräns
ReleaseLoadedPageObjectGraph frigör den valda indirekta sidroten och de direkt ägda nästlade objekten nedanför den
Genomgången följer inte indirekta länkar, så delade teckensnitt, bilder, resursordlistor, sidträdsnoder och andra objektsöverskridande objekt förblir ägda av det inlästa dokumentet
Sidspecifika display-list- och rasterposter avlägsnas vid samma gräns
Säkerhet och bibehållande
Smutsiga, måste-skriva, aktiva eller på annat sätt icke-omladdningsbara sidor behålls och rapporteras i stället för att kasseras
Direkta filbackade sidrötter läses om från deras validerade korsreferensoffset, medan komprimerade rötter läses om genom den indexerade objektströmsmedlemssökvägen
Ströminlästa eller krypterade vanliga rötter utan en oberoende upprepningsbar källa förblir residenta
Sekventiell bearbetning
for PageIndex := 0 to PDF.LoadedPageCount - 1 do
begin
ProcessLoadedPage(PDF, PageIndex);
PDF.ReleaseLoadedPageObjectGraph(PageIndex);
end;
Ett 100 000-sidigt regressionsexempel når en topp på 69,3 MiB på Win32, visar ingen steady-state-tillväxt och materialiserar sedan om en frigiven sida med dess ursprungliga objektnummer och sidrutor
Samtidighet
Inläst-dokumentgrafåtkomst förblir anroparserialiserad
Frigör inte en sida medan en annan tråd renderar, inspekterar eller muterar samma dokumentinstans
Se även: ReleaseLoadedPageObjectGraph, GetLoadedPageObjectGraphReleaseStatistics, THPDFPageObjectGraphReleaseStatistics, Lat sidträdsinläsning, Avgränsad objektströmscache