Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Do hlubin implementací JavaScriptu: 1. díl - úvod

Brut4r
Brut4r (neregistrovaný) ---.empire.cz
30. 10. 2008 8:07 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
Nedávno jsem implementoval možnost přesunu řádku v tabulce nahoru, dolu ,úplně nahoru a úplně dolů. Jako nástroj na pomoc jsem zvolil jQuery v poslední verzi (1.2.6) kvůli usnadnění práce s DOM. Výsledkem je cca 100 řádkový script. Blbé je, že na tomto scriptu je vidět rozdíl v rychlost zpracování JS pod Chrome nebo Safari vše běhá nádherně svižně. Pod IE 7 nebo Firefox 3 je rychlost nesrovnatelně pomalejší. Třeba při přesunu řádku v tabulce z horní pozice až dolů přes 70 řádků musí uživatel čekat klidně i 2 sekundy a s narůstajícím počtem řádků v tabulce toto číslo stoupá. Takže doufám, že optimalizace rychlosti se dočkáme i v jiných prohlížečích než jen těch založených na Webkit-u. A idální by bylo kdyby se tyto změny dostali i do starších bverzí těchto prohlížeču.
Jan Válek
30. 10. 2008 8:37 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
Zapoměl jsem se přihlásit předchozí příspěvek je ode mě.
m
m (neregistrovaný) ---.lbox.cz
30. 10. 2008 8:53 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
2 sekundy? V ideálním případě to je 1x removeChild a 1x appendChild (insertBefore), to musí být hned. Chybu bych hledal v tom 100 řádkovým scriptě. :)
Mazarik
Mazarik (neregistrovaný) ---.ais-servis.cz
30. 10. 2008 9:52 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
Presne tak. Hlavne na taku malu vec nahravat zo serveru jQuery, mi pride strasne. Samozrejme pokial autor pouziva tuto kniznicu aj na inom mieste, tak to ma vyznam.
maros
maros (neregistrovaný) ---.orange.sk
3. 11. 2008 11:34 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
A co "rendering engine"? Chyba predsa vobec nemusi byt ani v skripte and v JS, ale prave v zobrazeni 70 riadkovej tabulky.
Radek
Radek (neregistrovaný) ---.fit.vutbr.cz
30. 10. 2008 10:02 Nový

Rhino

celé vlákno
Nemohl byste při tom srovnávání zmínit i Rhino? Docela by mě zajímalo, jak si stojí a co si o tomto projektu vůbec myslet. Díky!
David Majda aura:98
30. 10. 2008 11:37 Nový

Re: Rhino

celé vlákno
O Rhino toho bohužel příliš nevím a vývojáři sami toho o něm nikde moc nepíší. Je to takový tichý projekt stojící trochu v ústraní (oproti interpretům JavaScriptu používaným v prohlížečích, které jsou podstatně exponovanější). Nicméně se na něj podrobněji podívám a uvidím.
maros
maros (neregistrovaný) ---.orange.sk
30. 10. 2008 14:52 Nový

Smalltalk

celé vlákno

Toto je dost odvazne tvrdenie: Ze širšího pohledu je také velice zajímavé, že zrychlování JavaScriptu posouvá "state-of-art" v oblasti interpretace dynamických jazyků obecně. Dynamické skriptovací jazyky (kam JavaScript patří) totiž obvykle slouží jen jako "lepidlo" komponent napsaných v jiných, rychlejších jazycích. Jejich rychlost tak není kriticky důležitá a tím pádem se výzkum v oblasti jejich interpretace nedostal příliš daleko - na rozdíl od oblasti kompilace "klasických" statických jazyků, která je intenzivně zkoumána přes 30 let.

Tak toto mi pride trochu pritiahnute za vlasy. Smalltalk je dufam dostatocne dynamicky jazyk a domnievam sa, ze by mohol hravo sutazit s JS zo Safari, WebKitu, Firefoxu a Opery. Staci si spustit lubovolny smalltalk - cele IDE je implementovane samozrejme v smalltalku. Je sice kompilovany do byte-kodu, ale samozrejme, ze nehovorim o nejakom javac'n'java kompilovani a nikto dufam nebrani prehliadacom pouzit JIT.

Odporucam sa pozriet na Just-in-time_compilation#History. V kazdom pripade by som si netrufol napisat, ze interpretacia dynamickych jazykov sa daleko nedostala, ani ze JavaScript nejak moc k tomu prispel/prispeje. [FLAME]Mozno konecne aj "jazycky" ako Python a Ruby trochu dotiahnu na Jazyk.[/FLAME]

Pre lenivych: Sun's Self language improved these techniques extensively and was at one point the fastest Smalltalk system in the world; achieving up to half the speed of optimized C[2] but with a fully object-oriented language.

tomas z.
tomas z. (neregistrovaný) ---.terminal.cz
30. 10. 2008 15:45 Nový

Re: Smalltalk

celé vlákno
A je Smalltalk taky skriptovací? :)

Taky to moc nechápu. Co to vlastně znamená skriptovací, když v JS skripty asi taky nikdo moc nepíše? A co je to dynamický jazyk? A proč musí být interpretovaný, co brání v tom ho zkompilovat? A neexistují už náhodou kompilované verze? Je kompilovaný Common Lisp dynamický?
David Majda aura:98
31. 10. 2008 9:33 Nový

Re: Smalltalk

celé vlákno
Ano, terminologie/klasifikace je tady dost vágní. Dynamickými skriptovacími jazyky mám na mysli především jazyky jako PHP, Python, Perl, Ruby, Lua, apod. Smalltalk a Lisp jsou bezpochyby dynamické, ale ne skriptovací.

Ad kompilátor vs. interpret. - opět je hranice trochu neostrá. Zjednodušeně (!) je pro mě interpret program, který na vstupu vezme program v nějakém jazyce a vydá na výstupu jeho výstup. Kompilátor naproti tomu vezme na vstupu program a na výstupu vydá jeho tranformovanou podobu, typicky kód virtuálního nebo reálného stroje. Je zřejmé, že interpret v sobě jako vnitřní součást může obsahovat kompilátor a nebo že nějaký program může být obojím.
David Majda aura:98
31. 10. 2008 9:25 Nový

Re: Smalltalk

celé vlákno
Moje tvrzení možná je trochu nadnesené, ale minimálně tracing, který zmiňuju v článku, novinkou v této oblasti je. Pointa každopádně je, že do kompilátorů statických jazyků se v minulosti investovalo mnohem (určitě řádově) víc úsilí než u těch dynamických jednoduše proto, že po tom byla větší poptávka. A zatím si stojím.

Odkaz na paper od Sunu jsem si uložil k pozdějšímu přečtení a na oplátku přidávám odkaz na přednášku, která inspirovala citovaný odstavec: http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html.
tomas z.
tomas z. (neregistrovaný) ---.kpmg.cz
31. 10. 2008 12:31 Nový

Re: Smalltalk

celé vlákno
"JavaScript je první dynamický jazyk, jehož rychlost je klíčová a zároveň je dostatečně rozšířený na to, aby vznikla dostatečná poptávka po tom ho významně zrychlit." - i v tom odkazovaném blogu je zmínka o C-like speedu u kompilátoru historického dynamického jazyka, takže ta potřeba tu už asi byla dřív, a investovaného úsilí nebylo zas tak málo, a upravován byl i jazyk, ne jen kompilátory. Například dokud v Javascriptu nebudou nepovinné deklarace typu (nebo tam už jsou?), tak jeho kompilátory asi nebudou moci jít tak "na krev" jako ty historických dynamických jazyků.

Aby nedošlo k omylu - to s čím ne zcela souhlasím jsou jen detaily, na seriál se těším, vypadá to zajímavě.

A co je to vlastně ten tracing? V článku je jen zmíněn, v odkázaném blogu o tom taky není... snad příští díl.
Ladislav Thon
Ladislav Thon (neregistrovaný) ---.insite.cz
31. 10. 2008 19:12 Nový

Re: Smalltalk

celé vlákno

> dokud v Javascriptu nebudou nepovinné deklarace typu

Neukázalo se při implementaci Strongtalku, že po všech optimalizacích typu PIC (které se mimochodem používá i ve V8) jsou optimalizace na základě typových informací zbytečné? :-)

Jinak hezký článek o trace trees je třeba tohle FAQ.

David Majda aura:98
31. 10. 2008 19:58 Nový

Re: Smalltalk

celé vlákno

A co je to vlastně ten tracing? V článku je jen zmíněn, v odkázaném blogu o tom taky není... snad příští díl.

Budu se tomu věnovat v dílu popisujícím SpiderMonkey (JS interpret ve Firefoxu).

uživatel si přál zůstat v anonymitě ---.selfnet.cz
31. 10. 2008 6:34 Nový

RE: Do hlubin implementací JavaScriptu: 1. díl - úvod

celé vlákno
Mam rad clanky od autoru, kteri veci rozumi a umi ji vysvetlit poradne a jasne. Tenhle serial se mi zatim jevi, ze bude presne v tomto duchu. Looking forward...
Zasílat nově přidané příspěvky e-mailem