joseluisjazz
Member
- Joined
- Oct 2, 2008
- Messages
- 399
I compiled unrar (nonfree) and p7zip for the Pandora and I thought it would be a good idea to create a thread to test them and the rest of the (de)compressors as they keep rolling out. So here they are.
UPDATED [post='902417']2010-08-08[/post]: Added UPX & unace.
upx (The Ultimate Packer for eXecutables)
Note 1:
UPX is an advanced executable file compressor. UPX will typically reduce the file size of programs and DLLs by around 50%-70%, thus reducing disk space, network load times, download times and other distribution and storage costs.
Programs and libraries compressed by UPX are completely self-contained and run exactly as before, with no runtime or memory penalty for most of the supported formats.
Note 2:
The precompiled UPX versions are linked against the NRV compression library instead of the UCL library. Using the same compression algorithms, NRV achieves a better compression ratio. NRV is not publicly available, though, and probably never will be.
Note 3:
This is the version for using from the Pandora. You could download binaries for other platforms that use the NRV library and compress the packages there. This would be the best option if Openpandora decides to compress the firmware ipks and repackage them again, in order to save space in the NAND.
unrar
b7zip
Ancient or arcane pieces of software (the museum part) ---------------------------------------
unace
Miscellaneus:
Small reading about Options That Control Optimization in gcc.
EDIT 20101027: fixed links
UPDATED [post='902417']2010-08-08[/post]: Added UPX & unace.
upx (The Ultimate Packer for eXecutables)
Note 1:
UPX is an advanced executable file compressor. UPX will typically reduce the file size of programs and DLLs by around 50%-70%, thus reducing disk space, network load times, download times and other distribution and storage costs.
Programs and libraries compressed by UPX are completely self-contained and run exactly as before, with no runtime or memory penalty for most of the supported formats.
Note 2:
The precompiled UPX versions are linked against the NRV compression library instead of the UCL library. Using the same compression algorithms, NRV achieves a better compression ratio. NRV is not publicly available, though, and probably never will be.
Note 3:
This is the version for using from the Pandora. You could download binaries for other platforms that use the NRV library and compress the packages there. This would be the best option if Openpandora decides to compress the firmware ipks and repackage them again, in order to save space in the NAND.
- Version: 3.05. Source code downloaded from upx.sourceforge.net
- Can pack: Linux Armel Executables.
- Adjustements to the source tree: None.
- Binaries included: upx.out
- Compilation options:-Os -mcpu=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -ffast-math -fsingle-precision-constant
- Binary download: upx-3.05-Os-upx-pandora.tar.gz (82 KiB)
- Installation to root:
Code:
$ sudo tar xzvf upx-3.05-Os-upx-pandora.tar.gz -C /
unrar
- Version: 3.9.10. Source code downloaded from www.rarlab.com
- Can unpack: RAR. (more? check)
- Adjustements to the source tree: None.
- Binaries included: unrar
- Compilation options:-O3 -mcpu=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -ffast-math -fsingle-precision-constant
- Binary download: unrar-3.9.10-Os-upx-pandora.tar.gz (82 KiB)
- Installation to root:
Code:
$ sudo tar xzvf unrar-3.9.10-Os-upx-pandora.tar.gz -C /
b7zip
- Version: 9.13. Source code downloaded from p7zip.sourceforge.net
- Can pack: 7z, ZIP, GZIP, BZIP2 and TAR.
- Can unpack: 7z, ZIP, GZIP, BZIP2, TAR, ARJ, CAB, CHM, CPIO, DEB, DMG, HFS, ISO, LZH, LZMA, MSI, NSIS, RAR, RPM, UDF, WIM, XAR, Z.
- Adjustements to the source tree: Personalized makefile for pandora system.
- Binaries included: 7za, 7z (and its plugins), 7zr, 7zCon.sfx
- Compilation options: Made 5 optimization variants by only changing the "OPTFLAGS" line in the makefile from -00 -O1 -O2 -O3 to -Os. The results vary in speed & binary size. I found this interesting in order to have a model for comparison, and a better perspective on the impact of optimizations for the Pandora.
- I've run integrity tests: Yes.
- Benchmarks: p7zip has a benchmark command-line parameter, so I made some benchmarks tests at 500MHz and at 800MHz for each version. Also here is the filesize list of the binaries.
- Benchmark summary (total avg. MIPS rating at 500MHz): -O0:124 -O1:259 -O2:288 -O3:291 -Os:299
- Benchmark summary (total avg. MIPS rating at 800MHz): -O0:194 -O1:398 -O2:439 -O3:442 -Os:456
- File size summary (in bytes): -O0:5932186 -O1:4309758 -O2:4290074 -O3:5172678 -Os:3196830.
- Binary download (only best variant): p7zip_9.13-Os-upx-pandora.tar.gz (1.24 MiB)
- Installation to root:
Code:
$ sudo tar xvf p7zip_9.13-Os-upx-pandora.tar.gz -C /
- Choice: In this case is pretty clear. -Os and -O3 versions are equally fast for packing but -Os version is noticeably faster for unpacking, better average and it's the smallest one in size by far so that's the best choice.
Ancient or arcane pieces of software (the museum part) ---------------------------------------
unace
- Version: 1.2b. Source code downloaded from debian.org
- Can unpack: ACE. (version 1 only)
- Adjustements to the source tree: None.
- Binaries included: unace
- Compilation options:-Os -mcpu=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -ffast-math -fsingle-precision-constant
- Binary download: unace-1.2b-Os-upx-pandora.tar.gz (X KiB)
- Installation to root:
Code:
$ sudo tar xzvf unace-1.2b-Os-upx-pandora.tar.gz -C /
Miscellaneus:
Small reading about Options That Control Optimization in gcc.
EDIT 20101027: fixed links