Infrastructura de cache

HotPDF oferă o memorie cache ponderată cu limită de dimensiune pentru obiecte intermediare reutilizabile și un cache persistent de pagini randate utilizat la randarea documentelor încărcate

Memoria cache ponderată

THPDFWeightedCache din HPDFCache deține valori TObject, le indexează după AnsiString și elimină valorile cel mai puțin recent utilizate până când greutatea lor cumulată se încadrează în MaxBytes

Chei de conținut

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

Ambele funcții returnează aceeași cheie hexazecimală SHA-256 în minuscule pentru același conținut

HPDFCacheKeyOfStream calculează hash-ul fără a aloca un al doilea tablou de octeți de dimensiune completă, citește fluxurile căutabile de la poziția zero și le restabilește poziția originală

Cache persistent de pagini randate

Fiecare instanță THotPDF reține decodoarele de fonturi încărcate parsate cu succes într-un cache LRU ponderat, în scopul documentului

Cache de decodare a imaginilor încărcate, pe shard-uri

Fiecare instanță THotPDF coordonează reutilizarea decodării imaginilor încărcate prin 16 shard-uri de metadate cu lock independent

Cache de transformări ICC

HPDFICC partajează transformări complete de la sursă la sRGB printr-un cache LRU ponderat, thread-safe, de 64 MiB, inclusiv profilurile de proof și de ieșire când sunt configurate

Cache persistent de subseturi de fonturi

Setați THotPDF.FontSubsetCacheFolder pentru a activa rezultate reutilizabile de subsetare TrueType și OpenType cât timp EnableFontSubsetting este activ

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

Cache persistent de pagini randate

Setați THotPDF.RenderCacheFolder pentru a activa nivelul pe disc utilizat după cache-ul de pagini randate din memorie

Proprietate

API-uri asociate