home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
06
/
ami012.txt
< prev
next >
Wrap
Text File
|
1997-04-07
|
7KB
|
212 lines
LZX 1.00
<a>Kamil Iskra
<txt>Przez dîugie lata pozycja LhA, jako najczëôciej uûywanego
archiwizera na Amidze, wydawaîa sië nienaruszalna. Nadszedî
jednak dzieï 12 lutego 1995 roku, kiedy to w Aminecie pojawiî sië
program LZX i zatrzâsî "systemem wartoôci" wielu posiadaczy
Amigi.
LhA to dobry program kompresujâcy. Jest doôê szybki i ma wiele
przydatnych opcji, jednak jego skutecznoôê, tj. stopieï
kompresji, nikogo juû dzisiaj nie wprawia w zdumienie. Program
jest po prostu stary! Nowe wersje nie ukazujâ sië juû od niemal
dwóch lat. Ostatnio, co prawda, krâûâ pogîoski o majâcej sië
ukazaê wersji 3., ale czy sâ one prawdziwe?
Niektórzy nie lubiâ stagnacji. Takim czîowiekiem jest Jonathan
Forbes, który stworzyî program LZX. Czîowiek ten ma bogate
doôwiadczenie w tworzeniu archiwizerów, jest autorem popularnych
niegdyô programów LZ i LX, uûywajâcych algorytmów znanych z
póúniejszego LhA.
Archiwum z programem znajduje sië w katalogu "util/arc" i zajmuje
128 KB. Po rozpakowaniu znajdujemy w katalogu "LZX" dokumentacjë
w standardzie AmigaGuide oraz sam program, w trzech wersjach --
dla procesorów MC68000-010, MC68020-030 oraz MC68040-060.
LZX przypomina pod wieloma wzglëdami program LhA. Obsîuga obu
programów jest niemal identyczna, takie same sâ "skróty"
wiëkszoôci komend i opcji. To chyba zaleta, bo nie trzeba sië
wszystkiego uczyê od nowa.
Dokumentacja jest napisana doôê zwiëúle, ale w wystarczajâcym
stopniu opisuje kaûdâ opcjë.
To, co wyróûnia LZX spoôród innych programów kompresujâcych, to
jego skutecznoôê. Osiâgniëto jâ dziëki nowatorskiemu algorytmowi,
zwanemu file merging, czyli îâczenie plików. Polega on na tym, ûe
w procesie kompresji krótkie pliki sâ najpierw îâczone ze sobâ, a
dopiero póúniej kompresowane. Moûe to poprawiê skutecznoôê
kompresji o kilkadziesiât procent! A jeûeli îâczone pliki sâ
podobne do siebie, to stopieï kompresji bywa jeszcze lepszy.
Przykîadem moûe byê sam LZX. Jak pisaîem, jest on
rozpowszechniany w trzech wersjach, które, rzecz jasna, nie
róûniâ sië od siebie w zasadniczy sposób. Oto, co jest w stanie
zrobiê z nimi LhA:
<l>
Listing of archive 'LZX.lha':
Original Packed Ratio Date Time Name
-------- ------- ----- --------- -------- -------------
63148 35279 44.1% 05-Feb-95 22:43:02 LZX_68000EC
60996 34200 43.9% 05-Feb-95 22:42:08 LZX_68020
61000 34222 43.8% 05-Feb-95 22:42:26 LZX_68040
-------- ------- ----- --------- --------
185144 103701 43.9% 18-Feb-95 18:53:48 3 files
<txt>A oto wyniki LZX:
<l>
Viewing archive 'LZX.lzx':
Original Packed Ratio Date Time Name
-------- -------- ----- --------- -------- -----------
61000 merged n/a 05-Feb-95 22:42:26 LZX_68040
60996 merged n/a 05-Feb-95 22:42:08 LZX_68020
63148 merged n/a 05-Feb-95 22:43:02 LZX_68000EC
185144 46962 25.3%
-------- -------- ----- --------- --------
185144 46962 25.3% 18-Feb-95 18:55:38 3 file(s)
<txt>Czyû róûnica nie jest szokujâca? Radzë nie patrzeê na
"procenty", bo programy wyliczajâ je w róûny sposób: LZX podaje
stosunek wielkoôci pliku skompresowanego do oryginalnego, LhA
"100" minus ten stosunek.
Moûe przedstawië jeszcze kilka testów (przeprowadziîem je na
mojej A1200 wyposaûonej w 6 MB RAM).
Dysk "Workbench3.0" skopiowany do RAM:, oba programy wywoîane z
opcjami "-e -F -r" (archiwizuj puste katalogi, nie przewijaj
konsoli, aby nie faîszowaê tym wyników, przyspiesza to poza tym
znacznie caîy proces, archiwizuj zawartoôê podkatalogów).
LhA: czas archiwizacji 51 sek, rozmiar archiwum 402421 bajtów.
LZX: czas archiwizacji 42 sek, rozmiar archiwum 344912 bajtów.
Chciaîbym teû pokazaê, ûe moc tego programu tkwi nie tylko w
îâczeniu plików. Ma on teû bardzo dobre procedury kompresujâce.
Przykîadem niech bëdzie plik "cc1plus" o rozmiarze 1440868 bajtów
(jest to kompilator jëzyka C++, wchodzâcy w skîad pakietu GNU CC
2.6.3 dla procesora MC68000).
LhA: czas archiwizacji 111 sek, rozmiar archiwum 682493 bajty.
LZX: czas archiwizacji 86 sek, rozmiar archiwum 586044 bajty.
Jednak, jak to zwykle bywa, nie wszystko w LZX jest cudowne.
Îâczenie plików, tak poprawiajâce kompresjë, ma teû pewne wady.
Jeûeli chcemy rozarchiwizowaê tylko jeden plik, to program i tak
musi rozpakowaê najpierw caîy blok poîâczonych plików, co úle
wpîywa na prëdkoôê. Przy dodawaniu pojedynczych plików do
istniejâcego juû archiwum sâ one kompresowane z osobna (bez
îâczenia z juû istniejâcymi), przez co skutecznoôê sië pogarsza.
Moûna jâ poprawiê przez rozarchiwizowanie caîego archiwum i jego
ponownâ archiwizacjë, ale to oczywiôcie chwilë trwa...
LhA archiwizuje pliki elegancko, w kolejnoôci alfabetycznej. LZX
wydaje sië archiwizowaê je "jak popadnie" -- moûe jest to
zwiâzane z îâczeniem plików.
Bardziej denerwujâcâ wadâ jest to, ûe chcâc np. zarchiwizowaê
zawartoôê katalogu "C", trzeba napisaê:
<l>LZX -r a ram:archiwum C/*
<txt>W innych archiwizerach amigowskich nie jest potrzebne
podawanie tego "/*", np. dopisaîem obsîugë LZX do programu GuiArc
(jak zapewne Czytelnikom wiadomo, jest to uniwersalna "okienkowa"
nakîadka na dowolne archiwizery -- ich obsîugë definiuje sië w
pliku "ArcTypes"). Niestety, obsîuga LZX nie dziaîa poprawnie --
nie moûna archiwizowaê katalogów -- wîaônie ze wzglëdu na
powyûszy niestandardowy wymóg programu.
Opcje moûna teû podawaê jedynie przed komendami (tzn. naleûy
pisaê "lzx -r a", a nie "lzx a -r"). To akurat bardzo mnie
zdenerwowaîo, bo przyzwyczaiîem sië przy LhA pisaê na odwrót.
Wydaje sië jednak, ûe jest to po prostu bîâd programu, bo zgodnie
z dokumentacjâ opcje moûna podawaê gdziekolwiek w linii
argumentowej. Nie jest to zresztâ jedyna niezgodnoôê z
dokumentacjâ: wedîug niej przy listowaniu zawartoôci archiwum
powinien sië znajdowaê w polu "Packed" (patrz zamieszczony
wczeôniej listing) rozmiar plików po kompresji, dla plików
îâczonych przybliûony, tymczasem dla takich plików jest tam
wyôwietlane "merged". Innâ wadâ jest teû to, ûe nie moûna îâczyê
opcji, tzn. chcâc podaê opcje "-e" i "-r", naleûy napisaê "lzx -e
-r", a nie moûna napisaê "lzx -er" -- to teû jest dla mnie doôê
denerwujâce, bo w LhA moûna tak robiê, moûna tak teû robiê w
komendach systemu Unix, z którego caîy ten jednoliterowy styl
podawania argumentów (zresztâ, moim skromnym zdaniem,
nonsensowny) pochodzi.
Wszystkie te wady sâ jednak îatwe do usuniëcia, nie naleûy
zapominaê, ûe opisujë pierwszâ wersjë programu.
Napisaîem wczeôniej, ûe autorem programu jest Jonathan Forbes.
Nie jest to w peîni prawda: autorów jest dwóch, drugim jest Tomi
Poutanen, który zajmuje sië tworzeniem wersji dla pecetów (ukaûe
sië ona póúniej od amigowej, bo autor musi najpierw obejôê
róûnorakie intelowe prymitywizmy w stylu 64-kilobajtowych bloków
pamiëci).
LZX, tak samo jak LhA, jest programem shareware. Cena programu
jest doôê wysoka i wynosi 25$ USA. Czy program jest tego wart?
Chyba tak, sâdzë jednak, ûe warto poczekaê i zobaczyê, czy
program sië "przyjmie", tj. czy stanie sië standardem kompresji.
<przyp>
Z ostatniej chwili: pojawiîa sië juû wersja 1.01, w której
poprawiono wiëkszoôê bîëdów wersji opisywanej.
Z autorami moûna sië skontaktowaê pod adresem:
Data Compression Technologies
383 Lawrence Avenue West
Toronto, Ontario
M5M 1B9
Canada
E-mail: jonathan.forbes@canrem.com
<r>LZX1.00
typ: archiwizer
autor: Jonathan Forbes
uniwersalnoôê: 10/10
prostota obsîugi: 7/10
wyglâd: n/d
jakoôê dziaîania: 8/10
ogólnie: 8/10