property CacheBudgetBytes: Int64; // default 256 MiB
Alterar o valor tem efeito imediato em todas as caches participantes na posse desta instância TPdf
Definir o valor como zero desativa novas retenções e remove todas as entradas inativas
Valores negativos lançam EPdfError
As cenas de página analisadas são fixadas e podem manter a utilização medida temporariamente acima de um orçamento reduzido até que a renderização as liberte
property CacheGovernor: TPdfCacheGovernor; // read-only, owned by TPdf
Devolve o governor partilhado para consultas de utilização por tipo e coordenação opcional com caches na posse da aplicação
Não liberte o objeto devolvido nem o retenha depois de a instância TPdf que o possui ser destruída
Os chamadores podem registar entradas pckApplication através de um participante que segue o contrato de callbacks e de ciclo de vida do FPdfCache
property CacheGovernorStatistics: TPdfCacheGovernorStatistics;
Devolve os bytes medidos atuais e de pico, os bytes fixados, a contagem de entradas, a atividade de reservas e de acessos, as remoções e as reservas rejeitadas
O instantâneo cobre apenas as entradas de cache retidas pela biblioteca
As cópias de bitmaps na posse do chamador e as cópias de instantâneos devolvidas permanecem fora do orçamento, enquanto as leituras de fluxos descodificados continuam efémeras e mantêm os seus limites máximos existentes por operação
As caches de bitmaps usam largura vezes altura vezes quatro bytes
As caches de instantâneos geridas incluem arrays de records, cadeias, buffers de bytes, segmentos de trajetos, dados de clip, marcas, metadados de imagem e valores aninhados
As cenas de página do PDFium analisadas são handles nativos opacos e recebem um encargo contabilístico de 8 MiB por cena retida, em vez de uma medição exata da utilização da heap nativa
var
Stats: TPdfCacheGovernorStatistics;
begin
Pdf.CacheBudgetBytes := Int64(128) * 1024 * 1024;
Stats := Pdf.CacheGovernorStatistics;
LogCacheUsage(Stats.StoredBytes, Stats.PeakStoredBytes,
Pdf.CacheGovernor.UsageForKind(pckThumbnail));
end;