缓存基础结构

HotPDF 为可复用的中间对象提供有界的加权内存缓存,并为已加载文档的渲染提供持久化的已渲染页面缓存

加权内存缓存

THPDFWeightedCache(位于 HPDFCache)持有TObject 值,按 AnsiString 进行索引,并淘汰最近最少使用的值,直到它们的总权重符合 MaxBytes

内容键

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

这两个函数对相同内容返回相同的小写 SHA-256 十六进制键

HPDFCacheKeyOfStream 在不分配第二个全尺寸字节数组的情况下进行哈希,从位置零读取可定位流,并恢复其原始位置

持久化已渲染页面缓存

设置 THotPDF.RenderCacheFolder 以启用内存中已渲染页面缓存之后使用的磁盘层

分片的已加载图像解码缓存

每个 THotPDF 实例经 16 个独立加锁的元数据分片协调已加载图像的解码复用

ICC 变换缓存

HPDFICC 经线程安全的 64 MiB 加权 LRU 缓存共享完整的 source 到 sRGB 变换,配置时含 proof 与输出 profile

持久化字体子集缓存

设置 THotPDF.FontSubsetCacheFolder 以在 EnableFontSubsetting 激活时启用可复用的 TrueType 与 OpenType 子集结果

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

已加载字体的解码器缓存

设置 THotPDF.RenderCacheFolder 以启用内存已渲染页面缓存之后的磁盘层

所有权

相关 API