Infraestrutura de cache

O HotPDF fornece caching de memória limitado mais caches persistentes para subsets de fontes reutilizáveis e páginas renderizadas

Cache de memória ponderada

THPDFWeightedCache em HPDFCache é proprietária dos valores TObject, indexa-os por AnsiString e remove os valores usados menos recentemente até o seu peso combinado caber em MaxBytes

Chaves de conteúdo

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

Ambas as funções devolvem a mesma chave hexadecimal SHA-256 em minúsculas para o mesmo conteúdo

HPDFCacheKeyOfStream calcula o hash sem alocar um segundo vetor de bytes de tamanho completo, lê streams com capacidade de pesquisa a partir da posição zero e restaura a sua posição original

Cache de descodificadores de fontes carregadas

Cada instância de THotPDF retém os descodificadores de fontes carregadas analisados com sucesso numa cache LRU ponderada com âmbito de documento

Cache fragmentada de descodificação de imagens carregadas

Cada instância de THotPDF coordena a reutilização da descodificação de imagens carregadas através de 16 shards de metadados com locks independentes

Cache de transformações ICC

HPDFICC partilha transformações completas de origem para sRGB através de uma cache LRU ponderada thread-safe de 64 MiB, incluindo perfis de proof e de saída quando configurados

Cache persistente de subsets de fontes

Defina THotPDF.FontSubsetCacheFolder para ativar resultados reutilizáveis de subsets TrueType e OpenType enquanto EnableFontSubsetting está 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 ativar o nível de disco usado após a cache em memória de páginas renderizadas

Propriedade e ciclo de vida

APIs relacionadas