THotPDF Cache-Admissionsrichtlinien
Steuert die Cache-Admission unabhängig für rohe komprimierte Quellbereiche, dekodierte Bilder, kompilierte Seiten-Displaylisten und gerenderte Rasterseiten
Deklarationen
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;
Standardgrenzen
| Schicht | Einträge | Gesamtbytes | Pro Eintrag | Adaptiv |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Ja |
clkDecoded | 256 | 32 MiB | 16 MiB | Ja |
clkDisplayList | 64 | 64 MiB | 16 MiB | Ja |
clkRaster | 8 | 128 MiB | 64 MiB | Ja |
Admissionsverhalten
Eine aktivierte Richtlinie erfordert positive Eintrags-, Gesamtbyte- und Pro-Eintrag-Grenzen, und die Pro-Eintrag-Grenze darf die Gesamtbyte-Grenze nicht überschreiten
Das Ändern einer Schicht ändert nie eine andere Schicht, und das Senken einer Grenze entfernt sofort am wenigsten zuletzt verwendete Einträge, bis der betroffene Cache passt
Mit aktiviertem AdaptiveAdmission bleibt die Reihenfolge am wenigsten zuletzt verwendet der schnelle Neuigkeitspfad, während ein vierwegebenzter Frequenzskizze jeden neuen Kandidaten mit jedem erforderlichen Opfer vor der Vertreibung vergleicht
Ein kälterer Kandidat umgeht die Aufbewahrung, ohne die aktuelle Anfrage zu stören, gleiche Häufigkeit begünstigt den neueren Kandidaten, und regelmäßige Zähleralterung lässt einen geänderten Arbeitssatz historische heiße Einträge ersetzen
Setzen Sie AdaptiveAdmission auf False, um dieselben harten Grenzen mit reiner Am-wenigsten-zuletzt-verwendet-Admission beizubehalten
Einträge größer als MaxEntryBytes werden für die aktuelle Operation verwendet, umgehen aber die Aufbewahrung, sodass ein großes dekodiertes Bild, eine Displayliste oder eine gerenderte Seite wiederverwendbare kleinere Einträge nicht verdrängen kann
Das Setzen von Enabled auf False mit Nullgrenzen deaktiviert die Aufbewahrung für diese Schicht, während ResetCacheAdmissionPolicies alle vier Standardwerte wiederherstellt
Statistiken
THPDFCacheAdmissionStatistics gibt die aktiven Grenzen, den adaptiven Modus, die aktuelle Eintrags- und Bytenutzung, Treffer, Fehlschläge, akzeptierte Admissions, abgewiesene Admissions, Kapazitätsvertreibungen, Frequenzentscheidungen und Alterungszyklen zurück
Rohe Bereichsstatistiken beschreiben die automatische zusammengeführte Quelle, die von LoadFromRandomAccessSource erstellt wird; eine explizit gelieferte THPDFCoalescingRandomAccessSource behält ihre vom Aufrufer gewählte Konfiguration
Kompatibilitätseigenschaften
RenderCacheCapacity aktualisiert die Rastereintrags-Grenze und ImageCacheMaxBytes aktualisiert die Gesamtbyte-Grenze dekodierter Bilder durch dieselbe Richtlinienvalidierung und den sofortigen Trimmpfad
Siehe auch: Skalierbares Laden, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource