Políticas de admisión de caché de THotPDF
Controla la admisión en caché de forma independiente para los rangos crudos comprimidos de origen, las imágenes decodificadas, las display lists compiladas de página y las páginas raster renderizadas
Declaraciones
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;
Límites predeterminados
| Capa | Entradas | Bytes totales | Por entrada | Adaptativo |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Sí |
clkDecoded | 256 | 32 MiB | 16 MiB | Sí |
clkDisplayList | 64 | 64 MiB | 16 MiB | Sí |
clkRaster | 8 | 128 MiB | 64 MiB | Sí |
Comportamiento de admisión
Una política habilitada exige límites positivos de entradas, de bytes totales y por entrada, y el límite por entrada no debe exceder el límite de bytes totales
Cambiar una capa nunca cambia otra capa, y bajar un límite elimina de inmediato las entradas menos recientemente usadas hasta que la caché afectada quepa
Con AdaptiveAdmission habilitado, el orden least-recently-used sigue siendo la vía rápida de recencia, mientras que un frequency sketch acotado de cuatro vías compara a cada nuevo candidato con todas las víctimas requeridas antes de la evicción
Un candidato más frío omite la retención sin perturbar la solicitud actual, la frecuencia igual favorece al candidato más nuevo, y el envejecimiento periódico de contadores permite que un working set cambiado reemplace entradas calientes históricas
Establezca AdaptiveAdmission en False para conservar los mismos límites estrictos con admisión puramente least-recently-used
Las entradas mayores que MaxEntryBytes se usan para la operación actual pero omiten la retención, evitando que una imagen decodificada, una display list o una página renderizada grande desplace entradas menores reutilizables
Establecer Enabled en False con límites en cero deshabilita la retención de esa capa, mientras que ResetCacheAdmissionPolicies restaura los cuatro valores predeterminados
Estadísticas
THPDFCacheAdmissionStatistics devuelve los límites activos, el modo adaptativo, la ocupación actual de entradas y bytes, los hits, los misses, las admisiones aceptadas, las admisiones rechazadas, las evicciones por capacidad, las decisiones por frecuencia y los ciclos de envejecimiento
Las estadísticas de rangos crudos describen la fuente de coalescencia automática creada por LoadFromRandomAccessSource; un THPDFCoalescingRandomAccessSource suministrado explícitamente conserva la configuración elegida por quien llama
Propiedades de compatibilidad
RenderCacheCapacity actualiza el límite de entradas raster y ImageCacheMaxBytes actualiza el límite de bytes totales de imágenes decodificadas a través de la misma validación de políticas y la misma vía de recorte inmediato
Véase también: Carga escalable, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource