THPDFCompressedSpillStream
Tamamen bellekte kalmaması gereken payload'lar için seekable geçici bir stream sağlar
Bildirim
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Depolama modeli
- Her mantıksal blok, hızlı bir Flate stratejisiyle bağımsız olarak sıkıştırılır
- Sıkıştırma en az 32 byte ek yük getirecekse blok raw kalır
- Sıralı yazmalar tam blokları kuyruğa alır; worker her batch'te birden çok blok boşaltır
- Producer, yalnızca bekleyen raw bloklar
MaxQueuedBytessınırına ulaştığında bekler - Okumalar, flush'lar, rastgele overwrite'lar ve resize işlemleri yalnızca kararlı bir blok indeksi gerektirdiklerinde senkronize olur
- Rastgele overwrite, yenisi sığıyorsa mevcut fiziksel slot'u yeniden kullanır; sığmıyorsa yeni bir blok sürümü ekler
- Sahiplik edilen geçici dosya, destructor tarafından silinir
İstatistikler
GetStatistics, THPDFSpillStatistics yapısını mantıksal ve fiziksel byte'lar, güncel sıkıştırılmış ve raw blok sayıları, asynchronous batch ve blok sayıları, producer beklemeleri ve tepe kuyruk byte sayısıyla doldurur
Ayrıca bkz: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo