[OLPC-devel] just verified: 2306 + olpc + linux kernel works.

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu May 25 20:33:53 EDT 2006


David Woodhouse wrote:
> On Fri, 2006-05-26 at 01:29 +0200, Carl-Daniel Hailfinger wrote:
>> For us, the uncompressed figures are a bit more menaingful because
>> we plan to compress everything with lzma and thus, start with elfImage
>> instead of bzImage.
>> Could you also upload the uncompressed binaries so we can check
>> how big the real-life savings by using lzma are? 
> 
> Hm... lzma. Should I consider using it as a compressor for JFFS2?
> 
> How does it fare in terms of memory usage and speed, and compression
> ratio on blocks of 4KiB of typical file system data? Or 16KiB I suppose,
> once I get round to that part of my TODO list...

Compression is slow, memory intensive, engineered for a bigger block
size and only available as C++ code AFAIR. Just the kind of thing you
want for write-once-read-many media like ROM, but I doubt you want it
for a writable file system.

Following numbers are for compression:
Speed is about 1/3 of bzip2 in max compression mode.
Memory requirements are about 10 times those of bzip2.

And usually compression numbers get more and more impressive if
the block size rises, but I don't have real hard numbers here.
Just took libgcj as an example:

# time gzip -9 libgcj.so.7.0.0; stat -c%s libgcj.so.7.0.0.gz
real    0m10.749s
6224169 libgcj.so.7.0.0.gz

# time bzip2 -9 libgcj.so.7.0.0; stat -c%s libgcj.so.7.0.0.bz2
real    0m9.775s
6197749 libgcj.so.7.0.0.bz2

# time lzmaencode libgcj.so.7.0.0; stat -c%S libgcj.so.7.0.0.lzma
real    0m32.917s
4339070 libgcj.so.7.0.0.lzma

These numbers are much more impressive than what I see with small
files, but that might also be due to the fact that the small files
I tested are different in structure. Hm. I splitted libgcj in 4k
sized chunks and reran the compression test.

7571810 libgcj.so.7.0.0.gz.4kchunks
8043146 libgcj.so.7.0.0.bz2.4kchunks
6477839 libgcj.so.7.0.0.lzma.4kchunks

Ran it again with 16k sized chunks:

6693730 libgcj.so.7.0.0.gz.16kchunks
6608000 libgcj.so.7.0.0.bz2.16kchunks
5451594 libgcj.so.7.0.0.lzma.16kchunks

Hmmm... strange results indeed. I'll leave it to you to interpret
them.


Regards,
Carl-Daniel
-- 
http://www.hailfinger.org/



More information about the Devel mailing list