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

SchichtEinträgeGesamtbytesPro EintragAdaptiv
clkRawCompressed82 MiB256 KiBJa
clkDecoded25632 MiB16 MiBJa
clkDisplayList6464 MiB16 MiBJa
clkRaster8128 MiB64 MiBJa

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