THPDFCompressedSpillStream
Stellt einen seekbaren temporären Stream für Nutzdaten bereit, die nicht vollständig im Arbeitsspeicher verbleiben sollen
Deklaration
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Speichermodell
- Jeder logische Block wird unabhängig mit einer schnellen Flate-Strategie komprimiert
- Ein Block bleibt unkomprimiert, wenn die Komprimierung mindestens 32 Bytes Overhead hinzufügen würde
- Sequenzielle Schreibvorgänge reihen vollständige Blöcke ein, und ein Worker verarbeitet mehrere Blöcke pro Batch
- Der Produzent wartet nur, wenn ausstehende unkomprimierte Blöcke
MaxQueuedByteserreichen - Lesezugriffe, Flushes, zufällige Überschreibungen und Größenänderungen synchronisieren nur dann, wenn sie einen stabilen Blockindex benötigen
- Ein zufälliges Überschreiben nutzt den aktuellen physischen Slot wieder, wenn der Ersatz hineinpasst, und hängt andernfalls eine neue Blockversion an
- Die gehaltene temporäre Datei wird vom Destruktor gelöscht
Statistik
GetStatistics füllt THPDFSpillStatistics mit logischen und physischen Bytes, aktuellen komprimierten und unkomprimierten Blockzahlen, asynchronen Batch- und Blockzahlen, Produzentenwartezeiten und maximalen eingehenden Bytes
Siehe auch: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo