THotPDF Cache Admission Policies
Controla a admissão no cache de forma independente para intervalos brutos comprimidos da fonte, imagens decodificadas, listas de exibição de página compiladas e páginas rasterizadas renderizadas
Declarações
THPDFCacheLayerKind = (clkRawCompressed, clkDecoded,
clkDisplayList, clkRaster);
THPDFCacheAdmissionPolicy = record
Enabled: boolean;
AdaptiveAdmission: boolean;
MaxEntries: Integer;
MaxTotalBytes: Int64;
MaxEntryBytes: Int64;
end;
THPDFCacheAdmissionStatistics = record
Enabled: boolean;
AdaptiveAdmission: boolean;
MaxEntries: Integer;
MaxTotalBytes: Int64;
MaxEntryBytes: Int64;
EntryCount: Integer;
CurrentBytes: Int64;
HitCount: Int64;
MissCount: Int64;
AdmissionCount: Int64;
RejectionCount: Int64;
EvictionCount: Int64;
FrequencyAdmissionCount: Int64;
FrequencyRejectionCount: Int64;
FrequencyAgingCount: Int64;
end;
procedure ResetCacheAdmissionPolicies;
procedure SetCacheAdmissionPolicy(Kind: THPDFCacheLayerKind;
const Policy: THPDFCacheAdmissionPolicy);
function GetCacheAdmissionPolicy(Kind: THPDFCacheLayerKind;
out Policy: THPDFCacheAdmissionPolicy): boolean;
function GetCacheAdmissionStatistics(Kind: THPDFCacheLayerKind;
out Statistics: THPDFCacheAdmissionStatistics): boolean;
Limites padrão
| Camada | Entradas | Bytes totais | Por entrada | Adaptativo |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Sim |
clkDecoded | 256 | 32 MiB | 16 MiB | Sim |
clkDisplayList | 64 | 64 MiB | 16 MiB | Sim |
clkRaster | 8 | 128 MiB | 64 MiB | Sim |
Comportamento de admissão
Uma política habilitada exige limites positivos de entrada, bytes totais e por entrada, e o limite por entrada não deve exceder o limite de bytes totais
Alterar uma camada nunca altera outra camada, e reduzir um limite remove imediatamente as entradas menos usadas recentemente até que o cache afetado caiba
Com AdaptiveAdmission habilitado, a ordem de menos usados recentemente permanece como o caminho rápido de recência, enquanto um esboço de frequência limitado de quatro vias compara um novo candidato com cada vítima necessária antes da remoção
Um candidato mais frio ignora a retenção sem perturbar a solicitação atual, frequência igual favorece o candidato mais novo e o envelhecimento periódico dos contadores permite que um conjunto de trabalho alterado substitua entradas quentes históricas
Defina AdaptiveAdmission como False para manter os mesmos limites rígidos com admissão pura de menos usados recentemente
Entradas maiores que MaxEntryBytes são usadas para a operação atual, mas ignoram a retenção, impedindo que uma imagem decodificada, lista de exibição ou página renderizada grande desloque entradas menores reutilizáveis
Definir Enabled como False com limites zero desabilita a retenção para essa camada, enquanto ResetCacheAdmissionPolicies restaura todos os quatro padrões
Estatísticas
THPDFCacheAdmissionStatistics retorna os limites ativos, o modo adaptativo, a ocupação atual de entradas e bytes, acertos, erros, admissões aceitas, admissões rejeitadas, remoções por capacidade, decisões de frequência e ciclos de envelhecimento
As estatísticas de intervalo bruto descrevem a fonte de coalescência automática criada por LoadFromRandomAccessSource; uma THPDFCoalescingRandomAccessSource fornecida explicitamente retém sua configuração selecionada pelo chamador
Propriedades de compatibilidade
RenderCacheCapacity atualiza o limite de entradas de rasterização e ImageCacheMaxBytes atualiza o limite de bytes totais de imagem decodificada pelo mesmo caminho de validação de política e corte imediato
Consulte também: Carregamento Escalável, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource