[OT:] Rychlost javascriptu v IE (bylo Re: komprese stringu)

Pavel Kutina hw na prelude.cz
Neděle Září 18 03:43:19 CEST 2011


Tak experiment se zdaril, pacient zemrel...

Sice jsem stlacil prenasena data na rozumnou velikost, ale narazil jsem o 
krok dale, a to na rychlost, resp. vypocetni vykon nutny pro zpracovani 
retezce javascriptem.

Jakkoli je to nehezke, mam na strane klienta tabulku, citajici cca 500 
radku, kazdy radek je inikatni a ma vygenerovane unikatni ID. Data se na 
serveru meni, ja prenasim pres XMLHttpRequest (IE komunikuje pres "svoji" 
implementaci AJAXu pres ActiveXObject) nejaky popisovaci soubor, na strane 
klienta pomoci GetElementByID nastavuju par drobnosti, jako je barva pozadi 
a viditelnost nekterych prvku.

Problem je s rychlosti a narocnosti zpracovani. Na "normalnich" prohlizecich 
(Firefox, Mozilla, Chrome, Opera) nemam problem a zpracovani na zatezi 
procesoru nevidim (testovano na ruznych PC a OS od WinXP na mobilnom 
Celeronu na 1.8GHz az po Win7 64bit s nejakym tlustym dvoujadrem) a vsechno 
chodi jak ma, na lokalni siti jsem schopnen aktualizovat data i nekolikrat 
za vterinu (jinak "best of" je Chrome, tam to pracuje s prakticky 
neznatelnymi prodlevami, nechapu, jak to delaji).

Problem je, kdyz to otevru ve starsim IE. IE 9 take nema problem, ale ty 
starsi (IE 8 a 7, predpokladam, ze i 6, ale nemam ho ted po ruce) na 
zpracovani tehoz skriptu sezerou veskery strojovy cas radove na sekundy - a 
v "idealnim" pripade i nafurt a nezbyva, nez IE sestrelit.

Pokud necham prakticky prazdnou smycku a delam jen dotaz serveru a nasledne 
parsovani dat, nema problem ani IE, takze je videt, ze zpracovani zvlada. 
Jakmile ale sahnu na naprosto libovolny vizualni styl (a treba 50x ho 
zopakuju, resp. nastavim u padesati elementu), jde do tuheho a zatez leti 
prudce nahoru. Kdyby to delaly vsechny prohlizece, pochopil bych, ze je to 
slepa cesta, ale proc se to sype jen v IE7 a 8? Chapu, ze stylovani takoveho 
baliku dat je asi malicko nadstandardni, ale zakaznik by to chtel mit 
implementovane a ja bych mu rad vyhovel - tim spis, kdyz vidim, ze to v 
nekterych prohlizecich jede bez problemu a technicky to zrejme 
realizovatelne bude.

Nemate nekdo tip?

Diky.

Pavel Kutina


----- Original Message ----- 
From: "Pavel Kutina" <hw na prelude.cz>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Wednesday, September 14, 2011 12:55 AM
Subject: Re: ] komprese stringu


Experiment dopadl vcelku uspesne, jak PHP, tak javascript umeji prevadet
primo funkci do maximalniho zakladu 36. Overil jsem na testovacich datech,
ze tudy cesta vede.

Diky za pripomenuti base64, overil jsem, lec alespon v PHP se  standardni
fce chova malicko jinak, nez bych cekal a data spis pribyvaji, ale uz nemam
silu to zkoumat. Zaklad 36 prozatim vyhovuje (a ve stanovenem rozsahu
000001 - 599999 nepretece, vysledek je ctyrbajtovy), dal se uvidi.

Diky vsem za pomoc.

Pavel Kutina


----- Original Message ----- 
From: "Jindroush" <kubecj na asw.cz>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Wednesday, September 14, 2011 12:36 AM
Subject: Re: ] komprese stringu


Proc nejaky zhuverily 62, kdyz base64 je provereny (a nepatrne uspornejsi).

Pokud jsou ta cisla opravdu definovana jako 0-999999, daji se seskladat
do retezce shiftovanim po 20 bitech. Ale netusim, zda ty shifty umi ten
js, ale nejak by se to obechcat asi dalo pres maskovani a nasobeni.

On 13.9.2011 22:51, Pavel Kutina wrote:
> Diky, ja to mezitim pochopil, akorat zkusim dovest usporu k dokonalosti
> a pouziju soustavu se zakladem 62 (k interpretaci 0..9, a..z, A..Z), to
> by mohla byt dobra cesta.
>
> Diky za nakopnuti, jdu experimentovat.
>
> Pavel Kutina
>
> ----- Original Message ----- From: "Marek Suba" <suba.marek na seznam.cz>
> To: "'HW-news'" <hw-list na list.hw.cz>
> Sent: Tuesday, September 13, 2011 10:42 PM
> Subject: RE: ] komprese stringu
>
>
> Vas string '123456' -- 6 byte
>
> Prevod do BCD 0x12 0x34 0x45 - 3byte
>
> Pokud se jedna jen o cisla tak se velkost dat zmensi na polovinu
>
> -----Original Message-----
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
> Behalf Of Pavel Kutina
> Sent: Tuesday, September 13, 2011 10:23 PM
> To: HW-news
> Subject: Re: ] komprese stringu
>
> Asi uz mam opravdu vygumovano, ale jak prevodem do BCD usetrim misto, 
> resp.
> zkratim prenasena data?
>
> Pavel Kutina
>
> P.S.: Tak jsem si tak udel predbezne nasobeni a vychazi mi, ze pri
> projektovane zatezi (v pripade, ze se mi nepodari stlacit jeden prenaseny
> blok pod 3.5kb) vygeneruji uzivatele proti serveru traffic cca 70GB behem
> deseti dnu. Prilis se mi to cislo nelibi, otazkou je, jak se bude libit
> hostingu, na kterem ten web pojede (to, kde a jak mi ten web jede
> -volny.cz-
>
> je bohuzel dane a nehnu s tim, ac se o to pokousim jiz nekolik let...).
>
>
> ----- Original Message ----- From: "Marek Suba" <suba.marek na seznam.cz>
> To: "'HW-news'" <hw-list na list.hw.cz>
> Sent: Tuesday, September 13, 2011 10:08 PM
> Subject: RE: ] komprese stringu
>
>
> Pokud se jedna o cisla co pouzit BCD?
>
> -----Original Message-----
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
> Behalf Of Pavel Kutina
> Sent: Tuesday, September 13, 2011 8:41 PM
> To: HW-news
> Subject: [OT:] komprese stringu
>
> Zdravim,
>
> omlouvam se za OT, ale uz jsem s tim stravil pul dne a rozumny vysledek 
> mne
> nejak nepotkal, tak si dovolim zneuzit mistni think tank:
>
> Potrebuju skrz web ke klientovi prenest cca 5kb textu, na strane serveru
> mam
>
> pro zpracovani PHP, na strane klienta javascript. Text je jeden dlouhy
> retezec cisel, je tam pouzito par separatoru (libovolny jiny znak).
>
> Protoze se text bude prenaset na pomerne dost pocitacu (cca 30) jednou za
> vterinu, docela bych potreboval vyresit nejakou kompresi, kterou budu
> schopen to na strane serveru PHP zkomprimovat a na strane klienta
> javascriptem dekomprimovat.
>
> Prenos probiha tak, ze server provede echo na stranku, javascript si to
> odtamtud "slizne" (je to zmrseny AJAX, zkousel jsem XML, ale rezie je
> neunosna).
>
> Nemate nekdo vyzkouseny nejaky vhodny kompresni algoritmus, pripadne
> knihovny atd.? Diky za kazdy dobry tip a jeste jednou se omlouvam za OT.
>
> Pavel Kutina
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


-- 
Jindroush (kubecj na avast.com)
http://www.kostky.org - Pro fany stavebnic LEGO.
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



Další informace o konferenci Hw-list