On Wed, 26 Oct 2011 16:15:11 -0700 Caleb Gray <ca...@calebgray.com>
wrote:

> @Dmitry Chestnykh:
> I just wrote a script for testing the speed and size difference
> between the different compressions available, find the results here:
> http://uploads.calebgray.com/contributions/compression/index.html

Thanks! I grepped a bit, and found out that Fossil uses 9 level for
deflate, which seem to me _not_ a good balance; and LZMA 1
level outperforms it in both compression ratio and speed.

Plus I've heard that xz is for some reason slower than 7zip:
http://ck-hack.blogspot.com/2011/04/quick-lrzip-comparison.html

BTW, how LZMA performs for tiny files? I ask because most blobs in
Fossil in normal operation (source code) are tiny due to
delta compression.

> As far as I know, memory usage depends entirely on dictionary size...
> so shouldn't DEFLATE and LZMA use the same amount of memory if
> configured correctly?

Not sure, but I thought a good part of why LZMA is so good is that it
has a large dictionary size. Though, maybe low compression levels don't
require a lot of memory.

> I'm used to 500KiB/s download speed, but my only choice at home is
> Clearwire (which is true, I'm sure, for more than just myself).
> Unfortunately, it's not rare for me to get 20KiB/s download speeds on
> it, if the Fossil releases were UPX compressed, that would have saved
> me ~5 seconds over the ZIP. Obviously, this isn't doesn't seem like a
> big deal, but keep in mind that the people in Australia/New Zealand
> have to pay for their bandwidth. It's not just time we're saving
> people, it's money too, in the long run.

Sure, I understand. When I lived in Russia, the first Ethernet
connection I got was pretty expensive: $0.15 per megabyte or so (with
average income in Moscow ~$500 at that time). Today a lot of places
in the world have expensive mobile internet.

Still, 500 KB difference in a world of torrents, 500 MB text
editors, and 2 GB software updates? Come on! :-)

> UPX has zero effect on memory usage, and would probably add a
> millisecond or two to each request, leaving CPU as the only truly
> impacted factor... I suppose that if a Pentium 133 uncompressed at
> ~10MB/s as they claim on their homepage... then if you're getting 10
> requests a second on a 1MB executable... your server would begin
> seeing the performance impact of Fossil being compressed using UPX.
> Anyway, I'm not a huge proponent to the idea, it was just a thought.

UPX works by allocating a buffer of original executable size, then
uncompressing the file to it, and executing this buffer. The statically
compiled fossil running on my server (amd64) is ~5 MB. This means that
on each request, if I packed it with UPX, I'd get 5 MB allocation --
not good for my little VPS :-)

-- 
Dmitry Chestnykh
http://www.codingrobots.com
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to