THPDFCompressedSpillStream
為不想整份駐留在記憶體中的資料提供可搜尋的暫存串流
宣告
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
儲存模型
- 每個邏輯區塊都以快速的 Flate 策略獨立壓縮
- 壓縮反而多出至少 32 位元組開銷時,區塊就保持原始格式
- 循序寫入把完整區塊排入佇列,worker 每批排空多個區塊
- 只有當未完成的原始區塊達到
MaxQueuedBytes時,生產端才會等待 - 讀取、flush、隨機覆寫與調整大小只在需要穩定區塊索引時才同步
- 隨機覆寫在放得下時重用目前的實體槽位,否則附加新的區塊版本
- 自有暫存檔由解構函式刪除
統計
GetStatistics 把邏輯與實體位元組、目前的壓縮與原始區塊數、非同步批次與區塊數、生產端等待次數以及尖峰佇列位元組填入 THPDFSpillStatistics
另請參閱: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo