Políticas de admisión en caché de THotPDF

Controla la admisión en caché de forma independiente para rangos de origen comprimidos sin procesar, imágenes decodificadas, listas de visualización de páginas compiladas y páginas rasterizadas 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

CapaEntradasBytes totalesPor entradaAdaptativo
clkRawCompressed82 MiB256 KiBSí
clkDecoded25632 MiB16 MiBSí
clkDisplayList6464 MiB16 MiBSí
clkRaster8128 MiB64 MiBSí

Comportamiento de admisión

Una política habilitada exige límites positivos de entradas, bytes totales y por entrada, y el límite por entrada no debe superar el límite de bytes totales

Cambiar una capa nunca modifica otra capa, y reducir un límite elimina de inmediato las entradas usadas menos recientemente hasta que la caché afectada quepa

Con AdaptiveAdmission habilitado, el orden de uso menos reciente sigue siendo la vía rápida de actualidad mientras un bosquejo de frecuencia acotado de cuatro vías compara un nuevo candidato con cada víctima requerida antes del desalojo

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 conjunto de trabajo cambiado reemplace las entradas activas históricas

Establezca AdaptiveAdmission en False para conservar los mismos límites estrictos con admisión pura de uso menos reciente

Las entradas mayores que MaxEntryBytes se usan para la operación actual pero omiten la retención, evitando que una imagen decodificada, una lista de visualización o una página renderizada grandes desplacen a entradas más pequeñas reutilizables

Establecer Enabled en False con límites cero desactiva la retención para 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, aciertos, fallos, admisiones aceptadas, admisiones rechazadas, desalojos por capacidad, decisiones de frecuencia y ciclos de envejecimiento

Las estadísticas de rangos sin procesar describen la fuente de fusión automática creada por LoadFromRandomAccessSource; un THPDFCoalescingRandomAccessSource suministrado explícitamente conserva su configuración elegida por el llamador

Propiedades de compatibilidad

RenderCacheCapacity actualiza el límite de entradas rasterizadas e ImageCacheMaxBytes actualiza el límite de bytes totales de imágenes decodificadas mediante la misma validación de política y la misma vía de recorte inmediato

Véase también: Carga escalable, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource