On Tue, Aug 24, 2004 at 01:57:22PM +0300, Romeo Ninov wrote:
> Имам следната ситуация:
> изшълнявам следната команда tar cf - <files>|bzip2 -9
> Интересува ме има ли някой идея какво е влиянието на размера на блока, 
> дефиниран от tar :  --block-size=N върху степента и скоростта на 
> компресия  на bzip2

Според мен не би трябвало да има никакво значение.  От това, което чета
за формата на tar архиви в manual page tar(5) във FreeBSD 5.x (след като
Тим Кинцле създаде bsdtar и документира файловите формати), тази опция
управлява единствено това колко запълване да има на края на всеки файл.
Блоковете, съставящи един файл в архива, не съдържат НИКАКВИ контролни
данни, които да бъдат използвани от архиватора (или деархиватора) -
единствената причина за съществуване на тези блокове е просто фактът, че
лентовите устройства (а все пак tar значи tape archiver) изискват
четенето и записа да се прави на блокове с определен размер.

С други думи, какъвто и размер да избереш, tar няма да вмъква никаква
контролна информация "по средата" на съдържанието на архивираните
файлове.  Единственото, за което размерът има значение, е колко байта с
нули ще има на края на всеки файл - хм, сега като се замисля, това
наистина би могло да има значение, ако архивираш голям брой файлове,
всеки от които е с размер доста по-малък от 10KB (10KB е размерът на
блок по подразбиране) - тогава може да се окажеш в ситуация, в която
архивът съдържа доста повече нули, отколкото истински файлове.  Но
мисля, че bzip2 със стандартния си размер на блок от малко по-малко от
900KB няма да се шашне изобщо от това - ще си компресира нулите съвсем
спокойно и все още ще може да използва контекст/речник/whatever, за да
използва съдържанието на предишните файлове за компресия на следващите.

Разбира се, ако на някого му се намира време и желание за едно истинско
изследване (компресия на няколко вида данни с няколко различни размери
на блокове за tar и няколко различни размера на блокове за bzip2), това
ще бъде интересно и може да покаже какви глупости съм наговорил :)

Поздрави,
Петър

-- 
Peter Pentchev  [EMAIL PROTECTED]    [EMAIL PROTECTED]    [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
Hey, out there - is it *you* reading me, or is it someone else?

Attachment: pgpokAw482xPi.pgp
Description: PGP signature

Reply via email to