linux-BR.org

Notícias de software livre e tecnologias

arquivo
tamanho
NDJSON
812,0MB
gzip (um fluxo)
56,9MB
zstd (quadros de 256 KiB)
60,6MB
lz4 (quadros de 256 KiB)
108,5MB
Meus dados são sintéticos. Quadros pequenos são compactados um pouco pior, já que cada quadro começa do zero, mas o arquivo zstd é apenas 6% maior que o arquivo gzip. Então você descompacta um pedaço, analisa as linhas completas desse pedaço e move a última linha incompleta para a frente do buffer. Assim, os threads podem receber quadros um por um, e cada thread descompacta e analisa seus próprios quadros. Ainda posso analisar em outros threads: um thread descompacta pedaços e os coloca em uma fila, e os outros threads os analisam.

Fonte: https://twitter.com/lemire/status/2105620969687515204