Cache Infrastructure

O HotPDF oferece um cache de memória ponderado e limitado para objetos intermediários reutilizáveis e um cache persistente de páginas renderizadas usado pela renderização de documentos carregados

Cache de memória com peso

THPDFWeightedCache em HPDFCache assume a posse de valores TObject, indexa-os por AnsiString e despeja os valores usados menos recentemente até que o peso combinado caiba em MaxBytes

Chaves de conteúdo

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

As duas funções retornam a mesma chave hexadecimal SHA-256 em minúsculas para o mesmo conteúdo

HPDFCacheKeyOfStream calcula o hash sem alocar um segundo array de bytes de tamanho completo, lê streams posicionáveis a partir da posição zero e restaura a posição original deles

Cache de decodificadores de fontes carregadas

Cada instância de THotPDF retém decodificadores de fontes carregadas parseados com sucesso em um cache LRU com peso no escopo do documento

Cache de decodificação de imagens carregadas em shards

Cada instância de THotPDF coordena a reutilização da decodificação de imagens carregadas por meio de 16 shards de metadados com locks independentes

Cache de transformações ICC

HPDFICC compartilha transformações completas de origem para sRGB por meio de um cache LRU com peso de 64 MiB thread-safe, incluindo perfis de proof e de saída quando configurados

Cache persistente de subconjuntos de fontes

Defina THotPDF.FontSubsetCacheFolder para habilitar resultados de subset TrueType e OpenType reutilizáveis enquanto EnableFontSubsetting estiver ativo

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

Cache persistente de páginas renderizadas

Defina THotPDF.RenderCacheFolder para habilitar a camada de disco usada após o cache de páginas renderizadas em memória

Ownership

APIs relacionadas