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
| Couche | Entrées | Octets totaux | Par entrée | Adaptatif |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 Mio | 256 Kio | Oui |
clkDecoded | 256 | 32 Mio | 16 Mio | Oui |
clkDisplayList | 64 | 64 Mio | 16 Mio | Oui |
clkRaster | 8 | 128 Mio | 64 Mio | Oui |
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