| Type | Description |
|---|---|
EPdfCacheError | 报告无效的预算、条目大小和参与方 |
TPdfCacheKind | 对页面场景(pckPageScene)、瓦片(pckTile)、缩略图(pckThumbnail)、系统字体(pckSystemFont)、结构数据(pckStructure)、文本快照(pckTextSnapshot)、页面对象快照(pckPageObjectSnapshot)、已解码流(pckDecodedStream)和应用程序条目(pckApplication)进行分类 |
TPdfCacheGovernorStatistics | 报告预算、当前与峰值保留字节、固定字节、条目数、预留数、访问数、逐出数和拒绝数;字段包括 MaxBytes、StoredBytes、PeakStoredBytes、PinnedBytes、EntryCount、ReservationCount、TouchCount、EvictionCount、RejectionCount |
TPdfCacheParticipant | 在调节器将令牌从其记账中移除之后,接收同步的 EvictCacheEntry 回调 |
TPdfCacheGovernorEntry | 为编译器兼容性而暴露的内部记账记录;字段包括 Token、Participant、Kind、StoredBytes、LastUsed 和 Pinned |
TPdfCacheGovernor | 线程安全的令牌注册表,在所有参与方和缓存种类之间维护单一的全局最近最少使用顺序 |
| Member | Description |
|---|---|
Create(AMaxBytes: Int64) | 创建带非负字节预算的调节器 |
Destroy | 在释放同步状态之前清除已注册的条目 |
Reserve | 预留字节并返回正数令牌,尽可能逐出全局 LRU 条目,条目无法容纳时返回零 |
Touch | 将现有令牌移动到最新位置 |
Release | 移除令牌的记账而不调用其逐出回调 |
SetPinned | 保护或取消保护使用中的条目,并在取消固定后进行修剪 |
Clear | 移除所有令牌并要求每个参与方释放其保留的条目 |
Contains | 测试令牌是否仍处于注册状态 |
UsageForKind | 返回某个 TPdfCacheKind 的保留字节数 |
EntryCountForKind | 返回某个 TPdfCacheKind 的注册条目数 |
Statistics | 返回受锁保护的遥测快照 |
MaxBytes | 读取或更改总预算,并在缩减后立即修剪未固定的条目 |
调节器绝不拥有参与方或其保留的数据
每个参与方的存活时间必须长于其注册的所有令牌,且不得从 EvictCacheEntry 抛出异常
回调在未持有调节器锁的情况下同步运行,因此参与方可以安全地为相关令牌调用 Release
在最后一个使用者取消固定之前,被固定的条目可能使 StoredBytes 暂时高于已下调的 MaxBytes 值
FPDF_RENDER_LIMITEDIMAGECACHE 仍可通过 reLimitCache 使用,它应用 PDFium 固定的原生单页图像缓存上限
PDFium 没有为可配置或可查询的进程级缓存字节预算公开任何公共 ABI
因此调节器度量 PDFium Delphi Component 自有的保留对象,并对不透明的已解析页面场景使用显式估算