THotPDF.BuildLoadedObjectDependencyGraph Method
Constrói um grafo de dependências determinístico do documento carregado atual e atribui a memória retida estimada através da dominator tree com raiz no Catalog
Declaração
function BuildLoadedObjectDependencyGraph(
out Nodes: THPDFObjectDependencyNodeArray;
out Edges: THPDFObjectDependencyEdgeArray;
out AInfo: THPDFObjectDependencyGraphInfo;
MaxObjects: Integer = 250000;
MaxEdges: Integer = 2000000
): boolean;
Nodes
EstimatedShallowBytesinclui a instância do objeto, os valores que lhe pertencem diretamente, as chaves e listas de dicionários e os payloads de stream residentes em memória, mas exclui os objetos indiretos referenciadosEstimatedRetainedBytesacrescenta os shallow bytes de todos os objetos alcançáveis a partir do Catalog e dominados por este nó, contando as dependências partilhadas apenas uma vezImmediateDominatorObjectNumbere a respetiva geração identificam o proprietário obrigatório mais próximo, ou-1para o Catalog e para os objetos inalcançáveis- Incoming and outgoing counts preserve reference-slot multiplicity, while
ReachableFromCatalogdistinguishes live document structure from detached objects
Edges and bounds
Cada aresta regista as identidades dos objetos de origem e de destino, o caminho de dicionário ou array do slot da referência, e se o destino foi resolvido exatamente pelo número de objeto e pela geração
O método rejeita contagens de objetos ou de arestas acima dos limites escolhidos por quem chama, contenção de objetos diretos com mais de 256 níveis de profundidade, ciclos malformados de contenção direta e análises de dominadores que excedam 128 passagens de convergência
Os valores de memória são estimativas portáveis, para atribuição e comparação, e não medições exatas do alocador ao nível do processo