PDFium Delphi Component 文件

TPdf 缓存调控器属性

组件: TPdf  ·  单元: PDFium, FPdfCache
在一个可度量的字节上限下统一协调保留的页面场景、缩略图、结构数据、文本快照和页面对象快照

CacheBudgetBytes

property CacheBudgetBytes: Int64; // default 256 MiB

更改该值会立即作用于此 TPdf 实例拥有的每个参与缓存

把该值设为零会禁用新的保留,并逐出所有非活动条目

负值会抛出 EPdfError

活动的已解析页面场景会被固定,在渲染释放它们之前,测量用量可能会暂时高于已降低的预算

CacheGovernor

property CacheGovernor: TPdfCacheGovernor; // read-only, owned by TPdf

返回共享调控器,用于按类别的用量查询以及与应用自有缓存的可选协调

不要释放返回的对象,也不要在所属 TPdf 实例销毁后继续保留它

调用方可以通过遵循 FPdfCache 回调与生命周期契约的参与者注册 pckApplication 条目

CacheGovernorStatistics

property CacheGovernorStatistics: TPdfCacheGovernorStatistics;

返回当前与峰值测量字节、固定字节、条目数量、预留与访问活动、逐出次数和被拒绝的预留

该快照只覆盖库保留的缓存条目

调用方持有的位图副本和返回的快照副本不计入预算,解码流读取仍然是临时的,并保留其现有的每操作硬限制

度量模型

位图缓存按宽度乘以高度再乘以 4 字节计算

托管快照缓存包括记录数组、字符串、字节缓冲区、路径段、剪裁数据、标记、图像元数据和嵌套值

已解析的 PDFium 页面场景是不透明的原生句柄,每个保留场景按 8 MiB 记账,而非宣称精确的原生堆占用

示例

var
  Stats: TPdfCacheGovernorStatistics;
begin
  Pdf.CacheBudgetBytes := Int64(128) * 1024 * 1024;
  Stats := Pdf.CacheGovernorStatistics;
  LogCacheUsage(Stats.StoredBytes, Stats.PeakStoredBytes,
    Pdf.CacheGovernor.UsageForKind(pckThumbnail));
end;

参见

FPdfCache, 缩略图缓存, PageSceneCacheCapacity, 结构缓存, 文本快照缓存, 页面对象快照缓存