Politiques d’admission du cache THotPDF

Contrôle l’admission en cache de façon indépendante pour les plages sources brutes compressées, les images décodées, les display lists de pages compilées et les pages raster rendues

Déclarations

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 par défaut

CoucheEntréesOctets totauxPar entréeAdaptatif
clkRawCompressed82 Mio256 KioOui
clkDecoded25632 Mio16 MioOui
clkDisplayList6464 Mio16 MioOui
clkRaster8128 Mio64 MioOui

Comportement d’admission

Une politique activée exige des limites strictement positives pour les entrées, les octets totaux et le volume par entrée, et la limite par entrée ne doit pas dépasser la limite totale en octets

Modifier une couche ne modifie jamais une autre couche, et abaisser une limite supprime immédiatement les entrées les moins récemment utilisées jusqu’à ce que le cache concerné respecte à nouveau sa limite

Avec AdaptiveAdmission activé, l’ordre des moins récemment utilisés reste le chemin rapide de récence pendant qu’un sketch de fréquence borné à quatre voies compare chaque nouveau candidat à toutes les victimes requises avant éviction

Un candidat plus froid contourne la rétention sans perturber la requête en cours, une fréquence égale favorise le candidat le plus récent, et le vieillissement périodique des compteurs permet à un ensemble de travail qui évolue de remplacer les entrées historiquement chaudes

Positionnez AdaptiveAdmission à False pour conserver les mêmes bornes strictes avec une admission purement fondée sur les moins récemment utilisés

Les entrées plus grandes que MaxEntryBytes servent l’opération en cours mais contournent la rétention, ce qui empêche une grande image décodée, un display list ou une page rendue de déloger des entrées plus petites et réutilisables

Passer Enabled à False avec des limites à zéro désactive la rétention de cette couche, tandis que ResetCacheAdmissionPolicies restaure les quatre valeurs par défaut

Statistiques

THPDFCacheAdmissionStatistics renvoie les limites actives, le mode adaptatif, l’occupation actuelle en entrées et en octets, les hits, les misses, les admissions acceptées, les admissions rejetées, les évictions par capacité, les décisions de fréquence et les cycles de vieillissement

Les statistiques des plages brutes décrivent la source de coalescence automatique créée par LoadFromRandomAccessSource ; une source THPDFCoalescingRandomAccessSource fournie explicitement conserve la configuration choisie par l’appelant

Propriétés de compatibilité

RenderCacheCapacity met à jour la limite d’entrées raster et ImageCacheMaxBytes met à jour la limite totale en octets des images décodées via le même chemin de validation de politique et de rognage immédiat

Voir aussi : Chargement évolutif, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource