THotPDF.BuildLoadedObjectDependencyGraph Method
為目前載入的文件建立確定性的相依圖,並透過以 Catalog 為根的支配樹歸因保留記憶體估計值
宣告
function BuildLoadedObjectDependencyGraph(
out Nodes: THPDFObjectDependencyNodeArray;
out Edges: THPDFObjectDependencyEdgeArray;
out AInfo: THPDFObjectDependencyGraphInfo;
MaxObjects: Integer = 250000;
MaxEdges: Integer = 2000000
): boolean;
節點
EstimatedShallowBytes包含物件實例、直接持有的值、字典鍵與清單,以及駐留記憶體的串流負載,但不包含被參照的間接物件EstimatedRetainedBytes再加上由此節點支配、可從 Catalog 到達的每個物件的 shallow 位元組數,共享的相依項只計一次ImmediateDominatorObjectNumber與其 generation 標識最近的必要擁有者;Catalog 與不可達物件則為-1- 入邊與出邊計數保留參照槽位的重複次數;
ReachableFromCatalog則區分活躍的文件結構與已脫離的物件
邊與界限
每條邊記錄來源與目標物件身分、參照槽位所在的字典或陣列路徑,以及目標是否按物件編號與 generation 精確解析
此方法會拒絕超過呼叫端指定上限的物件數或邊數、深度超過 256 層的直接物件包含、格式錯誤的直接包含循環,以及超過 128 次收斂迭代的支配樹分析
記憶體數值是供歸因與比較用的可攜式估計值,而非配置器等級的精確程序量測