View previous topic :: View next topic |
Author |
Message |
paziu Tux's lil' helper
Joined: 24 Nov 2006 Posts: 78
|
Posted: Fri Jul 29, 2011 7:12 pm Post subject: kgb_archiver - file compression utility |
|
|
Hello,
I thought somebody might be interested in this 'less popular', quite interesting compression utility - kgb_archiver v1
It is not the 'fastest' compression tool, but the results show an advantage over many others...
©2005-2006 Tomasz Pawlak
based on PAQ6 by Matt Mahoney
mod by Slawek
GPLv2
http://sourceforge.net/projects/kgbarchiver/
the 'POSIX' version does not seem to compile on my x86_64 (gcc 4.4.5) same with +1y old 32 bit (gcc 4.4.3) ( SOLVED : UPDATE on the bottom of the post )
but it does compile on the ancient (gcc 3.2.3) and less ancient (gcc 4.1.2)
here are the test results ( using default compression methods ) done against native tar archive of linux-2.6.36-gentoo-r1 kernel tree ( almost 400MiB )
results (in bytes):
Code: |
416307200 linux-2.6.36-gentoo-r1.tar ( native tar )
174037960 linux-2.6.36-gentoo-r1.tar.zoo ( zoo - Amiga days )
93470624 linux-2.6.36-gentoo-r1.tar.arj ( arj - also Amiga days )
91861450 linux-2.6.36-gentoo-r1.tgz ( tar cvzf - gzip )
71948500 linux-2.6.36-gentoo-r1.tbz ( tar cvjf - bzip2 )
69702430 linux-2.6.36-gentoo-r1.tar.rar ( rar against tar )
67923680 linux-2.6.36-gentoo-r1.tar.uha ( UHARC.exe in wine )
61335369 linux-2.6.36-gentoo-r1.tar.7z ( 7zip on tar )
now KGB:
51288739 linux-2.6.36-gentoo-r1.tar.kgb ( standard [-3] kgb compression - on tar )
43897953 linux-2.6.36-gentoo-r1.tar.9.kgb ( max [-9] compression - uses 1.6 GB RAM - whopping 2h 40m on a 4GHz i5 CPU - worth only if 'size REALLY matters' :) || benchmarking
|
this is the link for both binaries - compiled with gcc 3.2.3 and 4.1.2 on kernel 2.4.21 and 2.6.22 x86
paziu
ps: it would be really nice to see it compiling on 64bit...
UPDATE:
add an include to the POSIX 1.x source from sourceforge:
to successfully compile under newer c++ compilers ( x86 and x86_64 ) |
|
Back to top |
|
|
Silent-Hunter Apprentice
Joined: 07 Jul 2013 Posts: 166
|
Posted: Sat Jan 11, 2014 2:37 am Post subject: |
|
|
OK, I added the include but it now complains about a different problem:
Code: | g++ -O3 -o kgb kgb_arch_posix_by_slawek.cpp
kgb_arch_posix_by_slawek.cpp: In instantiation of ‘Hashtable<T>::Hashtable(U32) [with T = Counter; U32 = long unsigned int]’:
kgb_arch_posix_by_slawek.cpp:1362:55: required from here
kgb_arch_posix_by_slawek.cpp:1127:3: error: cast from ‘char*’ to ‘int’ loses precision [-fpermissive] |
So I did this:
Code: | g++ -O3 -fpermissive -o kgb kgb_arch_posix_by_slawek.cpp
kgb_arch_posix_by_slawek.cpp: In instantiation of ‘Hashtable<T>::Hashtable(U32) [with T = Counter; U32 = long unsigned int]’:
kgb_arch_posix_by_slawek.cpp:1362:55: required from here
kgb_arch_posix_by_slawek.cpp:1127:3: warning: cast from ‘char*’ to ‘int’ loses precision [-fpermissive] |
And now it compiled, but it does this:
Code: | ./kgb
kgb: kgb_arch_posix_by_slawek.cpp:612: ProgramChecker::ProgramChecker(): Assertion `sizeof(U32)==4' failed.
Aborted |
I am on:
Code: | Linux TERMINAL-BMRF-9 3.10.17-gentoo #1 SMP Mon Nov 4 02:40:40 EST 2013 x86_64 Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz GenuineIntel GNU/Linux |
|
|
Back to top |
|
|
|