Cache-Infrastruktur

HotPDF bietet einen begrenzten gewichteten Speicher-Cache für wiederverwendbare Zwischenobjekte und einen persistenten Render-Seiten-Cache, der beim Rendern geladener Dokumente verwendet wird

Gewichteter Speicher-Cache

THPDFWeightedCache in HPDFCache besitzt TObject-Werte, indiziert sie über AnsiString und verdrängt die am längsten nicht verwendeten Werte, bis deren kombiniertes Gewicht MaxBytes entspricht

Inhaltsschlüssel

function HPDFCacheKeyOfBytes(const Bytes: TBytes): AnsiString;
function HPDFCacheKeyOfStream(Stream: TStream): AnsiString;

Beide Funktionen geben für denselben Inhalt denselben kleingeschriebenen SHA-256-Hexadezimalschlüssel zurück

HPDFCacheKeyOfStream hasht, ohne ein zweites vollgroßes Byte-Array zu allozieren, liest seek-fähige Streams ab Position null und stellt ihre ursprüngliche Position wieder her

Dekoder-Cache für geladene Schriftarten

THotPDF.RenderCacheFolder festlegen, um die Festplattenebene zu aktivieren, die nach dem Speicher-internen Render-Seiten-Cache verwendet wird

Shard-basierter Dekodier-Cache für geladene Bilder

Jede THotPDF-Instanz koordiniert die Wiederverwendung dekodierter geladener Bilder über 16 unabhängig gesperrte Metadaten-Shards

ICC-Transformations-Cache

HPDFICC teilt vollständige Quell-zu-sRGB-Transformationen über einen thread-sicheren gewichteten LRU-Cache mit 64 MiB, einschließlich Proof- und Ausgabeprofilen, wenn konfiguriert

Persistenter Font-Subset-Cache

Setzen Sie THotPDF.FontSubsetCacheFolder, um wiederverwendbare TrueType- und OpenType-Subset-Ergebnisse zu aktivieren, während EnableFontSubsetting aktiv ist

PDF.EnableFontSubsetting := True;
PDF.FontSubsetCacheFolder := 'C:\ProgramData\MyApp\HotPDF\FontSubsets';
PDF.FontSubsetCacheMaxBytes := 256 * 1024 * 1024;

Persistenter Render-Seiten-Cache

THotPDF.RenderCacheFolder festlegen, um die Festplattenebene zu aktivieren, die nach dem Speicher-internen Render-Seiten-Cache verwendet wird

Besitz

Verwandte APIs