( uid_2716 | 2009. 02. 06., p – 12:36 )

Köszönöm a tesztelést. Godot kérdésére adott válaszodat kiegészíteném a következőkkel (belátva, hogy nem volt reális elvárás ezt írnom a topicindítóban:

Ha valakit az érdekelne, hogy minek írtam ilyet, az oldalon talál néhány teszteredményt, annak figyelmes böngészéséből kiderül.

):

A projekt eredetileg kitömörítőként indult (ha megnézed a ChangeLog-ot, akkor látod, hogy eredetileg lbunzip2 volt a neve). A tömörítés triviálisan párhuzamosítható (kivéve persze, ha a tömörített blokkokat össze akarod shiftelni egyetlen bzip2 stream-be a végén, ami sebesség szempontjából nagy öngól, mert a muxert azonnal CPU-bound-dá teszi; ilyen pl. a 7za bzip2 modulja). Így a tömörítés és az egyszálú kitömörítés csak utólag lett hozzáadva.

A "kunszt" a többszálú kitömörítő:

  1. pipe-ból is párhuzamosan dolgozik,
  2. a single stream bz2 állományokat (egyetlen bzip2 stream-et) is párhuzamosan dob szét,
  3. a splitter nem CPU-, hanem IO- (pontosabban I-) bound, annak ellenére, hogy a bzip2 blokkok határai tetszőleges bitpozícióra eshetnek.

Ilyen felhasználási esetre példa: gpg -d kimenetét akarod kitömöríteni, vagy brutál hálózatról letöltve (wget -O -) egyből szét akarod dobni.

Javaslom, hogy az "oldalamról" jelenleg letölthető 3 reportba kukkantsatok bele, ha érdekel benneteket ennyire. Szerintem kibányászható belőle, hogy melyik esetben melyik programot érdemes használni. Javaslom a README-t is, ha valakinek van elég türelme :)

Az alapkikötés volt, hogy a libbz2-höz nem nyúlok.