PDA

View Full Version : ati-driver-installer package with lzma compression could save up to 54% space!


Kano
10-22-2007, 03:26 AM
I wrote a script to be able to repack (and fix) official ati installer packages. Then I tested different compressions. Here the results:

51213090 ati-driver-installer-8.41.7-x86.x86_64.run
48289029 ati-driver-installer-8.41.7-x86.x86_64.run.bzip2
23317971 ati-driver-installer-8.41.7-x86.x86_64.run.lzma

For bzip2 and lzma max -9 compression was used like it gzip -9 is used in original package. In percentage:

100% ati-driver-installer-8.41.7-x86.x86_64.run
94% ati-driver-installer-8.41.7-x86.x86_64.run.bzip2
46% ati-driver-installer-8.41.7-x86.x86_64.run.lzma

Of course that needs lzma installed on the system or you have to put in a static build of lzma, but download size would be much smaller. lzma is the compression which used by 7zip.

FunkyRider
10-22-2007, 12:48 PM
what's the difference in compress/uncompress speed?

7zip's supposed to be a good thing though

ivanovic
10-22-2007, 01:17 PM
7z is *damn* slow regarding compressing/uncompressing. It takes a whole lot more time to compress/decompress a 7z file.
Beside this it is a rather new compression format. Due to this I do not trust this format so far since it has not proven to work in all cases, there might be some cases left where a lossless compression ain't working as expected. It takes quite some time until no compression algorithms are widely accepted...

Kano
10-22-2007, 01:21 PM
Well compression takes of course much longer (nearly 4 min on X2-3800+), but uncompress is not much slower than gzip - you would not see any difference. The only trick would be getting a lzma or better only the decoder lzmadec into the package. lzmadec static stripped with gzip packed would need around 200 kb extra space only.

FunkyRider
10-22-2007, 01:38 PM
but the first thing needs to be made clear is, why is a driver take such a large space... :cool::cool:

d2kx
10-22-2007, 01:40 PM
but the first thing needs to be made clear is, why is a driver take such a large space... :cool::cool:

Well, it is big, because fglrx is full of... features, you know.

Kano
10-22-2007, 01:44 PM
Very easy: it is multiply times stored it it. 4x for each arch, so 8x in total and gzip just does not "find" enough similaries between those. Also the installer is stored twice.

yoshi314
10-22-2007, 03:06 PM
lzma is a fairly good compression algorithm, but it's damn slow to pack something (which is not a problem in fglrx case, since ati does it) and it's not always reliable in its compression ratio. it does a bad job with certain file types (e.g. textual files) and other comression methods are size-comparable much faster.

also most 7zip algorithms use loads of memory to unpack. maybe lzma does not, i don't know.

FunkyRider
10-22-2007, 04:43 PM
a lot of features... that's just great :D ....... like no AA/vsync settings in the control panel.... :eek::eek:

Michael
10-22-2007, 04:46 PM
a lot of features... that's just great :D ....... like no AA/vsync settings in the control panel.... :eek::eek:

Wait for 8.42....

FunkyRider
10-22-2007, 04:48 PM
Michael, kindly to indicate whether AA will still work when AIGLX's enabled?

Kano
10-22-2007, 10:58 PM
Basically that thread should not be about any feature of the driver, just about the compression of it...

ltmon
10-23-2007, 01:00 AM
Wait for 8.42....

We are dammit, we are ;)

Kano
10-23-2007, 01:15 AM
So, now my script is ready for automatic adding a static variant of lzmadec if lzmadec.gz is in the same dir, filesize:

51213090 ati-driver-installer-8.41.7-x86.x86_64.run
23317971 ati-driver-installer-8.41.7-x86.x86_64.run.lzma
23525503 ati-driver-installer-8.41.7-x86.x86_64.run.lzma.static

So the diff is only: 207532 byte. Btw. my script can be used to make a stripped down version too, like only x86 and only Xorg 7.1+ would be:

13294358 ati-driver-installer-8.41.7-x86.x710.run.lzma.static

When you remove all setup files (--buildpkg only then):

11486143 ati-driver-installer-8.41.7-x86.x710.no-setup.run.lzma.static

That would fit nicely on a cd, when you compare it with NVIDIA 32 bit only:

7594280 NVIDIA-Linux-x86-100.14.23-pkg0.run

Not that much bigger...