分片已加载图像解码缓存
HotPDF 将独立锁定的缓存元数据与精确的按键单飞协调相结合
并行工作
十六个元数据分片在查找、准入和淘汰期间限制争用,而昂贵的图像解码在缓存锁之外运行
不同键的请求可以并发解码,同一键的请求选出一个所有者,其完成结果与所有等待的调用方共享
全局边界
ImageCacheMaxBytes、最大条目数和每个条目的最大大小适用于所有分片的组合内容
跨分片修剪保留确切配置的限制,并避免在另一个分片可以满足淘汰请求时选择刚插入的分片
所有权与生命周期
AcquireLoadedImageStream 和 AcquireLoadedImageRegionAtResolution 返回不可变的引用计数句柄,因此热命中和单飞等待者共享解码存储而不复制像素
句柄在缓存淘汰、失效和文档销毁后仍然有效,而 CreateBitmapCopy 在需要可变像素时提供隔离的调用方拥有的位图
旧式缓存解码方法通过从句柄物化一份拷贝保留其调用方拥有的 TBitmap 契约
遥测
GetImageDecodeConcurrencyInfo 公开实时和累计并发计数器
计数器在并行所有者和单飞活动之外公开句柄获取、兼容性位图拷贝和拷贝字节
相关 API
IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo