PDFium Delphi Component Docs

TPdf-Cache-Governor-Eigenschaften

Komponente: TPdf  ·  Units: PDFium, FPdfCache
Koordiniert zurückgehaltene Seitenszenen, Miniaturansichten, Strukturdaten, Textschnappschüsse und Seitenobjekt-Schnappschüsse unter einer messbaren Byte-Obergrenze

CacheBudgetBytes

property CacheBudgetBytes: Int64; // default 256 MiB

Eine Wertänderung greift sofort über jeden an dieser TPdf-Instanz beteiligten Cache hinweg

Der Wert null deaktiviert die neue Rückhaltung und verdrängt jeden inaktiven Eintrag

Negative Werte lösen EPdfError aus

Aktive geparste Seitenszenen sind angepinnt und können die gemessene Nutzung vorübergehend über ein reduziertes Budget anheben, bis das Rendering sie freigibt

CacheGovernor

property CacheGovernor: TPdfCacheGovernor; // read-only, owned by TPdf

Gibt den gemeinsamen Governor für nutzungsartbezogene Abfragen und eine optionale Koordination mit anwendungsseitigen Caches zurück

Geben Sie das zurückgegebene Objekt nicht frei und halten Sie es nicht über die Zerstörung der besitzenden TPdf-Instanz hinaus

Aufrufer können pckApplication-Einträge über einen Teilnehmer registrieren, der dem FPdfCache-Callback- und Lebensdauervertrag folgt

CacheGovernorStatistics

property CacheGovernorStatistics: TPdfCacheGovernorStatistics;

Gibt aktuelle und maximale gemessene Bytes, angepinnte Bytes, die Eintragsanzahl, Reservierungs- und Zugriffsaktivität, Verdrängungen und abgelehnte Reservierungen zurück

Der Schnappschuss deckt nur zurückgehaltene Bibliotheks-Cache-Einträge ab

Bitmap-Kopien des Aufrufers und zurückgegebene Snapshot-Kopien bleiben außerhalb des Budgets, während Lesevorgänge dekodierter Streams flüchtig bleiben und ihre bestehenden harten Grenzen pro Operation behalten

Messmodell

Bitmap-Caches verwenden Breite mal Höhe mal vier Bytes

Verwaltete Snapshot-Caches umfassen Record-Arrays, Strings, Byte-Puffer, Pfadsegmente, Clip-Daten, Marks, Bildmetadaten und verschachtelte Werte

Geparste PDFium-Seitenszenen sind opake native Handles und erhalten eine Buchung von 8 MiB pro zurückgehaltener Szene, statt einen exakten nativen Heap-Verbrauch zu beanspruchen

Beispiel

var
  Stats: TPdfCacheGovernorStatistics;
begin
  Pdf.CacheBudgetBytes := Int64(128) * 1024 * 1024;
  Stats := Pdf.CacheGovernorStatistics;
  LogCacheUsage(Stats.StoredBytes, Stats.PeakStoredBytes,
    Pdf.CacheGovernor.UsageForKind(pckThumbnail));
end;

Siehe auch

FPdfCache, Thumbnail-Cache, PageSceneCacheCapacity, Struktur-Cache, Text-Snapshot-Cache, Seitenobjekt-Snapshot-Cache