THotPDF.BuildLoadedObjectDependencyGraph-Methode
Baut einen deterministischen Abhängigkeitsgraphen für das aktuell geladene Dokument und ordnet die geschätzte gehaltene Speichermenge über den Catalog-verwurzelten Dominator-Baum zu
Deklaration
function BuildLoadedObjectDependencyGraph(
out Nodes: THPDFObjectDependencyNodeArray;
out Edges: THPDFObjectDependencyEdgeArray;
out AInfo: THPDFObjectDependencyGraphInfo;
MaxObjects: Integer = 250000;
MaxEdges: Integer = 2000000
): boolean;
Knoten
EstimatedShallowBytesumfasst die Objektinstanz, direkt besessene Werte, Dictionary-Keys und Listen sowie residente In-Memory-Stream-Payloads, schließt aber referenzierte indirekte Objekte ausEstimatedRetainedBytesaddiert die Shallow-Bytes jedes von der Catalog erreichbaren, von diesem Knoten dominierten Objekts und zählt gemeinsame Abhängigkeiten nur einmalImmediateDominatorObjectNumberund seine Generation identifizieren den nächsten zwingenden Besitzer, bzw.-1für den Catalog und unerreichbare Objekte- Eingehende und ausgehende Zählungen bewahren die Multiplizität der Referenz-Slots, während
ReachableFromCataloglebende Dokumentstruktur von abgetrennten Objekten unterscheidet
Kanten und Grenzen
Jede Kante zeichnet Quell- und Zielobjekt-Identität, den Dictionary- oder Array-Pfad des Referenz-Slots und ob das Ziel exakt über Objektnummer und Generation aufgelöst wurde auf
Die Methode weist Objekt- oder Kantenzahlen oberhalb der vom Aufrufer gewählten Limits zurück, direkte Objektverschachtelung tiefer als 256 Ebenen, fehlerhafte direkte Enthaltenseins-Zyklen und eine Dominator-Analyse, die 128 Konvergenzdurchläufe überschreitet
Speicherwerte sind portable Schätzungen für Zuordnung und Vergleich, keine allokator-exakten Prozessmessungen