已釋放頁面物件圖形
大型循序工作可以在每頁處理完後捨棄乾淨的頁面自有物件圖形,同時保留足夠的來源中繼資料,需要時再把該頁具現化回來
釋放邊界
ReleaseLoadedPageObjectGraph 釋放選定的間接頁面根及其下直接擁有的巢狀物件
遍歷不追蹤間接連結,因此共享的字型、影像、資源字典、頁面樹節點與其他跨頁物件仍由已載入文件擁有
頁面專屬的顯示清單與點陣項目在同一邊界被驅逐
安全性與保留
髒、必寫、使用中或其他無法重新載入的頁面會被保留並回報,而不是被捨棄
直接以檔案為後盾的頁面根從其已驗證的交叉參考位移重新載入,壓縮根則透過已索引的物件串流成員路徑重新載入
以串流載入或加密、且沒有可獨立重播來源的一般根保持常駐
循序處理
for PageIndex := 0 to PDF.LoadedPageCount - 1 do
begin
ProcessLoadedPage(PDF, PageIndex);
PDF.ReleaseLoadedPageObjectGraph(PageIndex);
end;
100,000 頁的回歸測試檔在 Win32 上峰值 69.3 MiB、無穩態成長,之後把已釋放的頁面以其原始物件編號與頁面框重新具現化
並行
已載入文件的圖形存取仍由呼叫端序列化
其他執行緒正在轉譯、檢視或變更同一文件執行個體時,不要釋放頁面
另請參閱: ReleaseLoadedPageObjectGraph, GetLoadedPageObjectGraphReleaseStatistics, THPDFPageObjectGraphReleaseStatistics, 惰性頁面樹載入, 有界物件串流快取