解放されたページオブジェクトグラフ

大規模な順次ジョブは、各ページの後にクリーンなページ所有オブジェクトグラフを破棄しながら、そのページを必要に応じて再度具体化するのに十分なソースメタデータを保持できます

解放境界

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、遅延ページツリーローディング、境界付きオブジェクトストリームキャッシュ