Re: lug-bg: влияние на размера на блока
- Subject: Re: lug-bg: влияние на размера на блока
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Tue, 24 Aug 2004 14:48:30 +0300
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 roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
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:
pgpoh0kqrA2KH.pgp
Description: PGP signature
|