[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lzip-bug] lzip and pipes
From: |
Antonio Diaz Diaz |
Subject: |
Re: [Lzip-bug] lzip and pipes |
Date: |
Sun, 29 Sep 2019 14:03:52 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14 |
Hi Daniel,
Daniel Klein wrote:
lzip seems to somehow "block" I/O in a process feeding it data via pipe.
All processes block I/O feed to them via pipe if the producer is faster than
the consumer. It is usually not noticed because most programs read data in
small blocks. When compressing, lzip reads data in large blocks (one
dictionary size at a time). It does this for efficiency reasons; each time
it reads a block, it needs to make room for it with memmove. Reading the
data in smaller blocks would probably make it slower, not faster.
The "blocking intervals" get longer with higher compression levels.
This is because dictionary size grows (and compression speed decreases) with
compression level.
I'll document this in the manual. Thanks.
Best regards,
Antonio.