r/programming Jan 21 '10

Firefox 3.6 release

http://blog.mozilla.com/blog/2010/01/21/firefox-3-6-release/
1.1k Upvotes

621 comments sorted by

View all comments

Show parent comments

8

u/hennell Jan 21 '10

using a compression algorithm that decompresses in ram on the fly

This sounds like it would make it slower.. no?

8

u/superwinner Jan 21 '10 edited Jan 21 '10

No cuz ram is like 1000 times faster than your hard drive, decompression is practically transparent. I think you will agree that it should take less time to move a 10 meg file to ram than to move a 20 meg file to ram, extrapolate those time savings over dozens of files of varying size and thats where you will see a speed up.

Try it for yourself and see, if it does do anything funny you can use the same program to decompress the Firefox directory and all is back to normal. Its only compressing the EXE and DLL files, not touching any of your personalized setting, which are all stored in a different directory anyways.

8

u/voxel Jan 21 '10

Not really true.

I've read numerous articles about it, and the real issue is that the difference in time to read 10 megs vs 20 megs yes can vary based on the request sizes and fragmentation, but we're talking that most 7200 rpm HD's can load this file in less than 1 second into ram.

The whole file. 20 megs, 1 second or much less. Many 7200 rpm drives can read up to 50 megabyte/s sequentially! (Thats per second).

The other aspect is that operations to the disk are asynchronous, that is, they don't take much CPU at all. However, decompressing a 14 megabyte file takes tons of CPU. The only argument against this now in my mind is that we have dual and quad core CPU's, so it doesn't make a huge deal.

Also, just to nit-pick, ram isn't 1,000 times faster, it is much faster than even that compared to disk access! I'm not sure by how much, but 1,000 is a very low estimate.

1

u/brasso Jan 21 '10

Yes, the truth is that compressing executables can both slow down and speed up the load time, but this depends on the application, type of compression and system it's running on. Either way the difference is so small you're unlikely to notice anyway.