THPDFCompressedSpillStream
提供可 seek 的临时流,用于不应完整驻留内存的载荷
声明
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Storage model
- 每个逻辑块都用快速 Flate 策略独立压缩
- 若压缩会增加至少 32 字节的开销,该块保持原始状态
- 顺序写入会将完整的块入队,由一个 worker 每批处理多个块
- The producer waits only when outstanding raw blocks reach
MaxQueuedBytes - 读取、flush、随机覆盖和调整大小,只有在需要稳定的块索引时才进行同步
- 随机覆盖在替换内容放得下时复用当前物理槽位,否则追加一个新的块版本
- 所持有的临时文件在析构函数中被删除
统计
GetStatistics 用逻辑字节数和物理字节数、当前压缩块数和原始块数、异步批次数和块数、生产者等待次数以及峰值排队字节数来填充 THPDFSpillStatistics
另请参阅: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo