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
