Aktív témák
-
robisz
senior tag
válasz Lamerjohny #1 üzenetére
Helló!
Szerintem király a téma én első körben szétnéznék a neten, hogy mit alkottak mások...
Pl. olvasd el ezt (pdf):
[link]
Valamint nézd meg az xmill nevű open source projectet ami éppen azt
csinálja amit te szeretnél...
Sok sikert!
[Szerkesztve] -
robisz
senior tag
válasz Lamerjohny #5 üzenetére
Olvasd el az xmill hogyan szedi szét a tag-eket a tartalomtól...
Ezzel igenis sokat lehet nyerni főleg ha nagy az xml és sok egyforma
tag van benne... -
robisz
senior tag
Akkor gondold végig mégegyszer és rájössz, hogy nagyobb méret esetén
nagyon is megéri szétszedni.
(Az xmill-ről is azt írják, hogy 20kb felett kezd jobb lenni a gzip-nél,
de ez alatt nem is nagyon érdemes tömöríteni)
Persze mindig lehet olyan esetet találni amikor rosszabb lesz a sima
zip-nél (pl ha minden xml tag és attribútum neve különböző) de ez
nagyon ritkán fordul elő. -
robisz
senior tag
Nem értek egyet az 1. pontoddal... pont ez a lényeg... képzeld el hogy van egy
hosszú nevű xml elemed pl.
<nagyonnagyonhosszúelemnév></nagyonnagyonhosszúelemnév>
Ez 54 karakter... most tegyük fel, hogy ez előfordul 1000-szer,
ez 54000 karakter.
Az xmill amikor elmenti a struktúrát, minden elemet lecserél egy integerre
a lezáró elem helyére pedig egy ''/'' jelet tesz.
Tehát a fenti elemből
''1/''
lesz 1000-szer ami 2000 karakter, plusz egy ''jelmagyarázat'' az elejére
''1=nagyonnagyonhosszúelemnév'' ami +27 karakter.
Így lesz az 54000-ből 2027 karakter és még csak ezután fogod zip-elni...
Ezenkívűl lehet úgy is optimalizálni, hogy a különböző típusú adatokat
külön konténerekbe teszed (pl. külön a csak numerikusakat stb)
és speciális tömörítővel külön külön tömöríted őket.
Egyébként nem hiszek el mindent amit olvasok.... de mi lenne ha kipróbálnád???
[Szerkesztve] -
robisz
senior tag
Egyébként ki tudnád fejteni, hogy a fenti módszer hol tartalmaz redundáns
információt? -
robisz
senior tag
Szerintem te rosszul értelmezed a redundanciát
Abban igazad van, hogy az 1-es kiszámítható abban az értelemben,
hogy tudjuk, hogy a ''hosszúnév''-nek felel meg.
De ennél sokkal fontosabb, hogy az ''1''-esek a hosszúnevek HELYÉT
jelölik...
Redundáns az az információ ami fölösleges, plusz információt nem hordoz...
Te viszont itt az 1-esek nélkül az életben elő nem állítod az eredeti
tartalmat tehát egyáltalán nem redundáns az információ.. csak másképpen,
hatékonyabban van ábrázolva.
Szerintem ha erre engedsz rá egy bzip2-őt akkor az esetek nagy részében jobb
eredményt kell kapnod...
De tudod mit? Most már én fogom kipróbálni... -
robisz
senior tag
Hmmm... kipróbáltam és az eredmények téged igazoltak...
Az xmill-hez adott példa xml-eket becsomagoltam bzip2-vel ami
egy esetet kivéve le is alázta az xmill-t...
Úgyhogy MEA CULPA....
Most már értem miért döglött be a project 2003-ban
De a redundanciára vonatkozó állításomat fenntartom -
robisz
senior tag
Amit irtam az nagyon le volt egyszerűsítve... nyilván egy ''kereskedelmi''
tömörítő 1000-el bonyolutabb, de a fenti példát az is hasonlóan tömörítené
össze...
Nyilván az 1-esek rontják a tömörítés hatásfokát, de ott már egy
20-ad akkora szöveget kell tömöríteni...
(1ébként az xml struktúrát és az adatokat külön tömöríti az xmill, tehát
nem fordul elő más szövegkörnyezetben) -
robisz
senior tag
Egész pontosan a struktúrába tesz be adatokra mutató ''pointereket''
(azokat is integerekkel helyettesíti)
Továbbra sem látom hol itt a redundancia... melyik az a rész amit
el tudsz hagyni úgy hogy visszaállítsd az eredeti tartalmat???
Egyébként nem hiszem, hogy egy diplomamunka keretében
reális elképzelés egy bzip2-nél hatékonyabb tömörítés kidolgozása -
robisz
senior tag
Igaz, csak így az ismétlődő adatokat egyszer teszem bele a fájlba
és a pointerek szerepelnek többször...
A példában amit írtam az 50000 karakterből 2500 lett... a te logikád
alapján mondhatnám én is, hogy az eredeti xml redundáns, mert
tartalmaz 47500 felesleges karaktert
Én elfogadom, hogy a pointer redundancia, de pici redundancia
ami egy nagyon-nagyból lett létrehozva -
-
robisz
senior tag
Csakhogy nekem nem az volt a célom, hogy a GZIP ÁLTAL JÓL FELDOLGOZHATÓ
(GÁJF (c)) karaktersorozatot hozzak létre... hanem én magam akartam tömöríteni...
A fenti példában sikerült is kb a 20-adjára....
Szintén a te gondolatmeneted követve: a winrar ritka szar tömörítő...
olyan redundanciát visz a fájlba, amivel a winzip már nemnagyon tud mit kezdeni... -
robisz
senior tag
A winrar (majdnem) hozza a winzip hatekonysagat, a te modszered kozel sem.
Hát az tuti.... de ezt nem is állítottam
Ezt az xmlppm-et viszont érdemes lenne megnézni... kipróbáltam pár fájlon
és eddig még mindig jobb eredményt adott a bzip2-nél...
Csak az xml parse-olással van gondja néha, nem minden fájl tetszik neki