PDFium Delphi Component Docs

Propriedades do governador de cache do TPdf

Componente: TPdf  ·  Unidades: PDFium, FPdfCache
Coordena cenas de página retidas, miniaturas, dados de estrutura, instantâneos de texto e instantâneos de objetos de página sob um único teto de bytes mensurável

CacheBudgetBytes

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

CacheGovernor

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

CacheGovernorStatistics

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

Measurement model

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

Example

var
  Stats: TPdfCacheGovernorStatistics;
begin
  Pdf.CacheBudgetBytes := Int64(128) * 1024 * 1024;
  Stats := Pdf.CacheGovernorStatistics;
  LogCacheUsage(Stats.StoredBytes, Stats.PeakStoredBytes,
    Pdf.CacheGovernor.UsageForKind(pckThumbnail));
end;

See Also

FPdfCache, Cache de miniaturas, PageSceneCacheCapacity, Cache de estruturas, Cache de instantâneos de texto, Cache de instantâneos de objetos de página