jump to navigation

bzip2 vs pbzip2 - Il benchmark! Mercoledì 20 Febbraio 2008

Posted by lele85 in Arch, Software libero, benchmark, curiosità.
trackback
compressione
Metodi alternativi di compressione… :P

Girando sul forum di archlinux.it mi sono imbattutto in un post in cui si parla di decompressione parallela e dei vantaggi che questa può portare.
Da buon curioso smanettone quale sono ho deciso di testare con mano la differenza di prestazioni prelevando pbzip2 da AUR (pbzip2 è una versione di bzip2 studiata per funzionare su sistemi multicore o multiprocessore) e compilandolo.
Ecco i risultati ottenuti con un file da 350MB.

Compressione con BZIP2:
[lele85@lele-box Season 2]$ time bzip2 test.avi
real 3m44.755s
user 3m17.900s
sys 0m2.203s

Decompressione con BZIP2:
[lele85@lele-box Season 2]$ time bunzip2 test.avi.bz2
real 1m44.236s
user 1m23.538s
sys 0m2.183s

Compressione con PBZIP2:
[lele85@lele-box Season 2]$ time pbzip2 test.avi
real 2m3.316s
user 3m44.402s
sys 0m6.756s

Decompressione con PBZIP2:
[lele85@lele-box Season 2]$ time pbunzip2 test.avi.bz2
real 0m59.269s
user 1m29.474s
sys 0m4.100s

Le prestazioni come vedete sono nettamente migliori.
Per capire meglio di cosa stiamo parlando ho anche preparato un piccolo grafico:

pbzip vs bzip

Nel mio caso con un semplice centrino duo T2050 a 1.6Ghz il risparmio in termini di tempo è stato di circa il 31,85% per la compressione e 43,14% per la decompressione.

Niente male direi! :D

Commenti»

1. monolite - Mercoledì 20 Febbraio 2008

Niente male no :) miseria…questa si che è un’ottima segnalazione considerando il fatto che se voglio comprimere, per esempio un dvd-9, spezzandolo in più archivi, il tempo guadagnato fa comodo…
da questa tua analisi si evince una cosa: l’ottimizzazione dovrebbe essere sempre presente nella testa dei programmatori e linux ne è l’esempio più lampante; macchine obsolete riescono a fare cose che un Vista con 16 giga fa ma con prestazioni scadenti. Un altro esempio che mi viene in mente in ottimizzazione è quello della PS2 che riesce ancora a far cose egregie. :)

2. Andrea Olivato - Mercoledì 20 Febbraio 2008

Interessantissimo articolo…mi chiedo che succeda con un bel phenom.

3. KingRA - Mercoledì 20 Febbraio 2008

Quoto in tutto e per tutto monolite.
Evviva l’ottimizzazione.

4. DnaX - Mercoledì 20 Febbraio 2008

E’ possibile integrare i benefici di PBZIP2 in FileRoller? così da non usare sempre la riga di comando…

5. Luigi Molinaro - Mercoledì 20 Febbraio 2008

Nel comando time che differenza c’è tra real user e sys ?
Grazie

6. lele85 - Mercoledì 20 Febbraio 2008

@Luigi
(Real)Tempo reale trascorso tra invocazione e termine

(user)Tempo utente della CPU (la somma dei valori di tms_utime e tms_cutime in formato struct tms come viene restituito dal comando times)

(system)Tempo di sistema della CPU (la somma dei valori di tms_stime e tms_cstime in formato struct tms come viene restituito dal comando times)

Questo direttamente da man time :D

@DnaX
Non ho idea ma vedrò di informarmi a riguardo! ;-)