Infrastructure de cache

HotPDF fournit un cache mémoire pondéré et borné pour les objets intermédiaires réutilisables, ainsi qu'un cache persistant de pages rendues utilisé par le rendu des documents chargés

Cache mémoire pondéré

THPDFWeightedCache dans HPDFCache détient des valeurs TObject, les indexe par AnsiString et évince les valeurs les moins récemment utilisées jusqu'à ce que leur poids combiné respecte MaxBytes

Clés de contenu

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

Les deux fonctions renvoient la même clé hexadécimale SHA-256 en minuscules pour un contenu identique

HPDFCacheKeyOfStream effectue le hachage sans allouer un second tableau d'octets de taille complète, lit les flux positionnables à partir de la position zéro et restaure leur position d'origine

Cache persistant de pages rendues

Définissez THotPDF.RenderCacheFolder pour activer le niveau disque utilisé après le cache en mémoire des pages rendues

Cache fragmenté de décodage d’images chargées

Chaque instance THotPDF coordonne la réutilisation de décodage d’images chargées via 16 fragments de métadonnées verrouillés indépendamment

Cache de transformations ICC

HPDFICC partage les transformations complètes source-vers-sRGB via un cache LRU pondéré thread-safe de 64 Mio, y compris les profils d’épreuve et de sortie lorsqu’ils sont configurés

Cache persistant de sous-ensembles de polices

Définissez THotPDF.FontSubsetCacheFolder pour activer les résultats réutilisables de sous-ensembles TrueType et OpenType tant que EnableFontSubsetting est actif

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

Cache persistant de pages rendues

Définissez THotPDF.RenderCacheFolder pour activer le niveau disque utilisé après le cache de pages rendues en mémoire

Propriété

API associées