THPDFCompressedSpillStream
Fornisce uno stream temporaneo seekable per payload che non dovrebbero restare interamente residenti in memoria
Dichiarazione
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Modello di archiviazione
- Ogni blocco logico viene compresso indipendentemente con una strategia Flate veloce
- Un blocco resta raw quando la compressione aggiungerebbe almeno 32 byte di overhead
- Le scritture sequenziali mettono in coda blocchi completi e un worker svuota più blocchi per batch
- Il produttore attende solo quando i blocchi raw outstanding raggiungono
MaxQueuedBytes - Letture, flush, overwrite casuali e resize si sincronizzano solo quando richiedono un indice di blocchi stabile
- Un overwrite casuale riusa lo slot fisico corrente quando il rimpiazzo entra, altrimenti aggiunge una nuova versione del blocco
- Il file temporaneo di proprietà viene cancellato dal distruttore
Statistiche
GetStatistics riempie THPDFSpillStatistics con byte logici e fisici, conteggi correnti di blocchi compressi e raw, conteggi asincroni di batch e blocchi, attese del produttore e picco di byte in coda
Vedi anche: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo