THPDFCompressedSpillStream
Fornece um fluxo temporário pesquisável para cargas que não devem permanecer totalmente residentes em memória
Declaração
constructor Create(
BlockBytes: Integer = 262144;
BatchBytes: Integer = 1048576;
MaxQueuedBytes: Integer = 4194304);
Modelo de armazenamento
- Cada bloco lógico é compactado de forma independente com uma estratégia Flate rápida
- Um bloco permanece bruto quando a compactação adicionaria pelo menos 32 bytes de sobrecarga
- Gravações sequenciais enfileiram blocos completos e um trabalhador drena vários blocos por lote
- O produtor espera apenas quando blocos brutos pendentes alcançam
MaxQueuedBytes - Leituras, liberações, sobrescritas aleatórias e redimensionamentos sincronizam apenas quando exigem um índice de bloco estável
- Uma sobrescrita aleatória reutiliza o slot físico atual quando a substituição cabe e, caso contrário, anexa uma nova versão de bloco
- O arquivo temporário de propriedade é excluído pelo destrutor
Estatísticas
GetStatistics preenche THPDFSpillStatistics com bytes lógicos e físicos, contagens atuais de blocos compactados e brutos, contagens de lotes e blocos assíncronos, esperas do produtor e bytes de pico enfileirados
Veja também: THPDFLazyFileStream, LoadedStreamMemoryThreshold, GetLoadedStreamCacheInfo