On Thu, Feb 28, 2013 at 10:26 PM, Harald Becker <[email protected]> wrote:
> Hi Jody !
>
> On 28-02-2013 12:36 Jody Bruchon <[email protected]> wrote:
>>Actually, I use lzop extensively in my company. It is hands down the
>
> Please do not misunderstand. I don't vote against lzop. I'm voting for
> having that lzip in Busybox as another very effective compressor. I
> just wanted to say lzip has it's rights like lzop, another compressor
> not so widely used in Linux land ... but they are used!
>
>>fastest compression algorithm available in BusyBox in both directions,
>>and when you are more concerned with performance than compression
>>ratio (but still want decent compression) lzop is a fantastic tool.
>>It's the only compressor that is fast enough to squeeze additional
>>bandwidth out of network links (because compression on even a slower
>>modern PC is faster than the speed of a gigabit ethernet connection).
>>Piping a stream through lzop (especially with the -1 switch) is
>>practically free in computational terms, and nets a fair compression
>>ratio.
>
> Thx, for clarifying this. It shows that even compressors not used on
> main stream may have there benefits.
>
>>I can't be the only person who uses lzop in such a manner. Plus, on
>>embedded systems, the overhead is minimal and the RAM requirement to
>>use lzop is tiny (gzip is a beast by comparison), so it fits in very
>>well with the spirit of BusyBox.
>
> Do I tell you something suspicious, if I say I'm using lzop on a
> regular basis for the same purpose you mentioned? My Linux kernel even
> uses lzop decompression for kernel and intramfs, with noticable
> faster startup :)

Current lzop decompression implementation does some tiny reads
at the beginning, and before every decoded block:

read(0, "\211LZO\0\r\n\32\n", 9)        = 9
read(0, "\20\20", 2)                    = 2
read(0, " 0", 2)                        = 2
read(0, "\t@", 2)                       = 2
read(0, "\1", 1)                        = 1
read(0, "\5", 1)                        = 1
read(0, "\3\0\0\1", 4)                  = 4
read(0, "\0\0\0\0", 4)                  = 4
read(0, "\0\0\0\0", 4)                  = 4
read(0, "\0\0\0\0", 4)                  = 4
read(0, "\0", 1)                        = 1
read(0, "\20\224\0\304", 4)             = 4

read(0, "\0\4\0\0", 4)                  = 4
read(0, "\0\1\326\33", 4)               = 4
read(0, "\225\367\273\230", 4)          = 4
old_mmap(NULL, 282624, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) = 0xb76dc000
read(0, "\17pax_global_header\0 1\0\0\0050000666\0"..., 120347) = 120347
write(1, "pax_global_header\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 262144) = 262144

read(0, "\0\4\0\0", 4)                  = 4
read(0, "\0\1%\201", 4)                 = 4
read(0, "\312\5R\344", 4)               = 4
read(0, "\0\"linux-3.3.4/Documentation/ABI/"..., 75137) = 75137
write(1, "linux-3.3.4/Documentation/ABI/te"..., 262144) = 262144

read(0, "\0\4\0\0", 4)                  = 4
read(0, "\0\1\313\1", 4)                = 4
read(0, "tv\r\355", 4)                  = 4
read(0, "\0S now partially implemented in "..., 117505) = 117505
write(1, " now partially implemented in th"..., 262144) = 262144

It is a bit expensive to use three syscalls to fetch three 32-bit words :(
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to