THPDFCompressedSpillStream
Proporciona un stream temporal con seek para payloads que no deberían permanecer completamente residentes en memoria
Declaración
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Modelo de almacenamiento
- Cada bloque lógico se comprime de forma independiente con una estrategia Flate rápida
- Un bloque permanece raw cuando la compresión añadiría al menos 32 bytes de overhead
- Las escrituras secuenciales encolan bloques completos y un worker drena varios bloques por batch
- El productor espera solo cuando los bloques raw pendientes alcanzan
MaxQueuedBytes - Las lecturas, los flush, las sobrescrituras aleatorias y los resize solo se sincronizan cuando requieren un índice de bloques estable
- Una sobrescritura aleatoria reutiliza el slot físico actual cuando el reemplazo cabe y, de lo contrario, agrega una nueva versión del bloque
- El archivo temporal del que es propietario el stream lo elimina el destructor
Estadísticas
GetStatistics llena THPDFSpillStatistics con bytes lógicos y físicos, cantidades actuales de bloques comprimidos y raw, cantidades de batches y de bloques asíncronos, esperas del productor y pico de bytes encolados
Véase también: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo