PDFium Delphi Component Docs

FPdfCache Unit

Unit: FPdfCache
Stellt einen gemeinsamen Byte-Budget-Governor für vorgehaltene PDF-Daten bereit, deren Eigentümer Einträge bei Bedarf freigeben können

Typen

TypBeschreibung
EPdfCacheErrorMeldet ungültige Budgets, Eintragsgrößen und Teilnehmer
TPdfCacheKindKlassifiziert Seitenszenen (pckPageScene), Kacheln (pckTile), Vorschaubilder (pckThumbnail), Systemschriften (pckSystemFont), Strukturdaten (pckStructure), Text-Schnappschüsse (pckTextSnapshot), Seitenobjekt-Schnappschüsse (pckPageObjectSnapshot), dekodierte Streams (pckDecodedStream) und Anwendungseinträge (pckApplication)
TPdfCacheGovernorStatisticsMeldet das Budget, aktuelle und maximale vorgehaltene Bytes, angepinnte Bytes, Eintragsanzahl, Reservierungen, Zugriffe, Verdrängungen und Zurückweisungen; Felder sind unter anderem MaxBytes, StoredBytes, PeakStoredBytes, PinnedBytes, EntryCount, ReservationCount, TouchCount, EvictionCount, RejectionCount
TPdfCacheParticipantEmpfängt synchrone EvictCacheEntry-Callbacks, nachdem der Governor ein Token aus seiner Buchhaltung entfernt hat
TPdfCacheGovernorEntryInterner Buchhaltungs-Record, der für Compiler-Kompatibilität offengelegt wird; Felder sind unter anderem Token, Participant, Kind, StoredBytes, LastUsed und Pinned
TPdfCacheGovernorThread-sichere Token-Registrierung mit einer globalen Least-Recently-Used-Ordnung über Teilnehmer und Cache-Arten hinweg

TPdfCacheGovernor-Member

MemberBeschreibung
Create(AMaxBytes: Int64)Erzeugt einen Governor mit einem nicht negativen Byte-Budget
DestroyRäumt registrierte Einträge ab, bevor der Synchronisierungszustand freigegeben wird
ReserveReserviert Bytes und gibt ein positives Token zurück, verdrängt nach Möglichkeit globale LRU-Einträge oder gibt null zurück, wenn der Eintrag nicht passt
TouchVerschiebt ein bestehendes Token an die neueste Position
ReleaseEntfernt die Buchhaltung für ein Token, ohne seinen Verdrängungs-Callback aufzurufen
SetPinnedSchützt einen genutzten Eintrag oder hebt den Schutz auf und stutzt nach dem Lösen des Schutzes
ClearEntfernt alle Tokens und bittet jeden Teilnehmer, seinen vorgehaltenen Eintrag freizugeben
ContainsPrüft, ob ein Token weiterhin registriert ist
UsageForKindGibt die vorgehaltenen Bytes für eine TPdfCacheKind zurück
EntryCountForKindGibt die registrierte Eintragsanzahl für eine TPdfCacheKind zurück
StatisticsGibt einen sperrengeschützten Telemetrie-Schnappschuss zurück
MaxBytesLiest oder ändert das Gesamtbudget und stutzt nach einer Verringerung sofort ungeschützte Einträge

Eigentümerschaft und Callback-Vertrag

Der Governor ist niemals Eigentümer der Teilnehmer oder ihrer vorgehaltenen Daten

Jeder Teilnehmer muss alle seine registrierten Tokens überdauern und darf aus EvictCacheEntry keine Ausnahme auslösen

Callbacks laufen synchron, ohne dass die Governor-Sperre gehalten wird, sodass Teilnehmer gefahrlos Release für verwandte Tokens aufrufen können

Geschützte Einträge können StoredBytes vorübergehend über einem reduzierten MaxBytes-Wert halten, bis der letzte Nutzer den Schutz aufhebt

PDFium-Grenze

FPDF_RENDER_LIMITEDIMAGECACHE bleibt über reLimitCache verfügbar und wendet PDFiums festes natives Image-Cache-Limit pro Seite an

PDFium stellt keine öffentliche ABI für ein konfigurierbares oder abfragbares prozessweites Cache-Byte-Budget bereit

Der Governor misst daher vorgehaltene Objekte im Eigentum von PDFium Delphi Component und verwendet eine explizite Schätzung für opake geparste Seitenszenen

Siehe auch

TPdf cache governor, TPdfTileCache, ConfigureSystemFontCacheGovernor