Thread View: pl.comp.lang.javascript
7 messages
7 total messages
Started by MJM
Fri, 11 Sep 2009 07:39
Ociążenie procesora przez javascript
Author: MJM
Date: Fri, 11 Sep 2009 07:39
Date: Fri, 11 Sep 2009 07:39
20 lines
2464 bytes
2464 bytes
Tak sobie ostatnio dłubię w tym js. Javascript jest wolny, to chyba nie ulega wątpliwości (to nie zarzut, po prostu specyfika i środowisko o tym decydują). Na domiar złego javascript nie jest wielowątkowy (to gorzej, wprawdzie łatwiej pisać programy ale dużo możliwości się traci). Z dwóch powyższych wynikają dwie rzeczy. Skrypt js potrafi zarżnąć przeglądarkę (a często i cały system) (w uproszczeniu). Niestety przycisk "stop" w przeglądarkach nie powoduje przerwanie wykonywania javascript tylko przerwanie ładowania strony. Tak więc często użytkownik nie ma nic lepszego do zrobienia niż zabić przeglądarkę (niestety wraz z innymi zakładkami). Druga rzecz, to taka, że jeśli ktoś ma 4-ro rdzeniowy procesor to i tak programik js będzie mu chodził tylko na jednym rdzeniu. :( A piszę to dlatego, żeby Szanowni Koledzy skorygowali mnie, tam gdzie się w swoich ocenach mylę. Nie wiem jak sprawa wygląda np. w rhino, Adobe AIR, czy powyższe spostrzeżenia dotyczą wszystkich przeglądarek (może Google Chrome zrobił jakiś krok do przodu?). Niestety nie jestem w stanie teraz sprawdzić tego wszystkiego sam. PS. Mogę sobie emulować wielowątkowość js pisząc tak, aby funkcje chodziły na interval (przerywały swoje działanie i wracały do niego). Wtedy od strony użytkownika będzie wyglądało jakby się wykonywały jednocześnie - ale nie o to wszak chodzi. Pozdrawiam Michał Mierzwa
Re: Ociążenie procesora przez javascript
Author: porneL
Date: Fri, 11 Sep 2009 17:51
Date: Fri, 11 Sep 2009 17:51
31 lines
1996 bytes
1996 bytes
On Fri, 11 Sep 2009 08:39:35 +0100, MJM <oj.moze@lepiej.nie.pl> wrote:
> Tak sobie ostatnio d³ubiê w tym js.
> Javascript jest wolny, to chyba nie ulega w±tpliwo¶ci (to nie zarzut, po
> prostu specyfika i ¶rodowisko o tym decyduj±).
Biorąc pod uwagę najnowsze implementacje z JIT i polymorphic inline
caching, to jest wątpliwe :)
> Na domiar
> z³ego javascript nie jest wielow±tkowy (to gorzej, wprawdzie ³atwiej
> pisaæ programy ale du¿o mo¿liwo¶ci siê traci).
HTML 5 i Google Gears mają możliwość uruchamiania JS w prawdziwych wątkach.
> Z dwóch powy¿szych wynikaj± dwie rzeczy. Skrypt js potrafi zar¿n±æ
> przegl±darkê (a czêsto i ca³y system) (w uproszczeniu). Niestety
> przycisk "stop" w przegl±darkach nie powoduje przerwanie wykonywania
> javascript tylko przerwanie ³adowania strony. Tak wiêc czêsto
> u¿ytkownik nie ma nic lepszego do zrobienia ni¿ zabiæ przegl±darkê
> (niestety wraz z innymi zak³adkami).
Może zamknąć taba. Poza tym wszystkie przeglądarki po chwili pytają się,
czy ubić skrypt.
--
http://pornel.net
this.author = new Geek("porneL");
http://pornel.net/krzaki-w-po?cie
Re: Ociążenie procesora przez javascript
Author: Artur Muszyński
Date: Sat, 12 Sep 2009 12:12
Date: Sat, 12 Sep 2009 12:12
18 lines
1852 bytes
1852 bytes
porneL pisze: > On Fri, 11 Sep 2009 08:39:35 +0100, MJM <oj.moze@lepiej.nie.pl> wrote: > >> Tak sobie ostatnio d³ubiê w tym js. >> Javascript jest wolny, to chyba nie ulega w±tpliwo¶ci (to nie zarzut, >> po prostu specyfika i ¶rodowisko o tym decyduj±). > > Biorąc pod uwagę najnowsze implementacje z JIT i polymorphic inline > caching, to jest wątpliwe :) Nie znam bebechów, ale imo sparse array będą wolniejsze od "assemblerowej" tablicy C. No i dynamicznie dodawane metody i pola - jakoś nie wydaje mi się, żeby to mogło działać tak szybko jak wywołanie spod pointera z offsetem (pewnie używane są hashe). Można podejrzewać, że wydajność js jest na poziomie vbs, PHP, Pythona itp. Z drugiej strony - nie bardzo zrozumiałem na czym polega problem MJM :-) artur
Re: Ociążenie procesora przez javascript
Author: MJM
Date: Tue, 15 Sep 2009 06:29
Date: Tue, 15 Sep 2009 06:29
56 lines
3962 bytes
3962 bytes
Użytkownik "porneL" <niusy4@pornel.net> napisał w wiadomości news:op.uz3s7jmxutk0y1@aimac.local...
> On Fri, 11 Sep 2009 08:39:35 +0100, MJM <oj.moze@lepiej.nie.pl> wrote:
>
>> Tak sobie ostatnio d3ubie w tym js.
>> Javascript jest wolny, to chyba nie ulega w?tpliwo?ci (to nie zarzut, po prostu specyfika i ?rodowisko o tym decyduj?).
>
> Biorąc pod uwagę najnowsze implementacje z JIT i polymorphic inline caching, to jest wątpliwe :)
>
>> Na domiar
>> z3ego javascript nie jest wielow?tkowy (to gorzej, wprawdzie 3atwiej pisaa programy ale du?o mo?liwo?ci sie traci).
>
> HTML 5 i Google Gears mają możliwość uruchamiania JS w prawdziwych wątkach.
>
>> Z dwóch powy?szych wynikaj? dwie rzeczy. Skrypt js potrafi zar?n?a przegl?darke (a czesto i ca3y system) (w uproszczeniu).
>> Niestety
>> przycisk "stop" w przegl?darkach nie powoduje przerwanie wykonywania javascript tylko przerwanie 3adowania strony. Tak wiec
>> czesto
>> u?ytkownik nie ma nic lepszego do zrobienia ni? zabia przegl?darke (niestety wraz z innymi zak3adkami).
>
> Może zamknąć taba. Poza tym wszystkie przeglądarki po chwili pytają się, czy ubić skrypt.
>
>
> --
> http://pornel.net
> this.author = new Geek("porneL");
>
> http://pornel.net/krzaki-w-po?cie
Dziękuję za odpowiedź.
>Biorąc pod uwagę najnowsze implementacje z JIT i polymorphic inline caching, to jest wątpliwe :)
O tym muszę poczytać co to jest JIT i polymorphic inline caching. Z praktyki widzę, że js w najnowszych wersjach przeglądarek nadal
jest wolny (Google Chrome najszybszy, po środku Opera i FF a IE to potrafi przyprawić o łzy). I obawiam się, że jest wolniejszy
nawet niż inne języki skryptowe typu PHP. Nie oczekuję oczywiście, że będzie chodził jak Java czy c#, o c nie wspominając. Nie wiem
jak chodzi Flashowy Action Script ale pewnie też zostawia js daleko w tyle. I tu dochodzimy do sedna mojego problemu. Chciałbym
pisać gry w js, na początek takie odpowiedniki gier flashowych i Javowo-apletowych. Udało mi się napisać kółko i krzyżyk 4x4x4 i
teraz kończę zumę. Jednak ze względu na powolność js nigdy nie będę miał tylu możliwości co w innych technologiach :(.
>HTML 5 i Google Gears majÄ
moĹźliwoĹÄ uruchamiania JS w prawdziwych wÄ
tkach.
Dziękuję za info. Poczytam.
>MoĹźe zamknÄ
Ä taba. Poza tym wszystkie przeglÄ
darki po chwili pytajÄ
siÄ,
czy ubiÄ skrypt.
No... moje niektóre programy nie zawieszają przeglądarki w taki sposób aby ta zaproponowała przerwanie skryptu. Po prostu pożerają
zasoby systemu tak, że cały system przestaje odpowiadać. :). Dlatego w przeglądarkach przydałby się mimo wszystko przycisk STOP JS.
Jak powinienem ustawić kodowanie polskich literek w postach? Dotychczas standardem było ISO-8859-2 zdaje się.
Pozdrawiam
Michał Mierzwa
Re: Ociążenie procesora przez javascript
Author: Mariusz Chwalba
Date: Tue, 15 Sep 2009 07:13
Date: Tue, 15 Sep 2009 07:13
35 lines
2457 bytes
2457 bytes
On Tue, 15 Sep 2009 08:29:13 +0200, MJM <oj.moze@lepiej.nie.pl> wrote: > Dziêkujê za odpowied¼. > >> Bior±c pod uwagê najnowsze implementacje z JIT i polymorphic inline >> caching, to jest w±tpliwe :) > > O tym muszê poczytaæ co to jest JIT i polymorphic inline caching. Z > praktyki widzê, ¿e js w najnowszych wersjach przegl±darek nadal > jest wolny (Google Chrome najszybszy, po ¶rodku Opera i FF a IE to > potrafi przyprawiæ o ³zy). I obawiam siê, ¿e jest wolniejszy > nawet ni¿ inne jêzyki skryptowe typu PHP. Nie oczekujê oczywi¶cie, ¿e > bêdzie chodzi³ jak Java czy c#, o c nie wspominaj±c. Nie wiem > jak chodzi Flashowy Action Script ale pewnie te¿ zostawia js daleko w > tyle. I tu dochodzimy do sedna mojego problemu. Chcia³bym > pisaæ gry w js, na pocz±tek takie odpowiedniki gier flashowych i > Javowo-apletowych. Uda³o mi siê napisaæ kó³ko i krzy¿yk 4x4x4 i > teraz koñczê zumê. Jednak ze wzglêdu na powolno¶æ js nigdy nie bêdê mia³ > tylu mo¿liwo¶ci co w innych technologiach :(. Przy takich zabawach z JS to głównym ograniczeniem jest wydajność manipulacji DOM, a nie samego języka. Większość przeglądarek nie była projektowana z myślą o prezentacji treści zmieniającej się w czasie rzeczywistym. [...] > Jak powinienem ustawiæ kodowanie polskich literek w postach? Dotychczas > standardem by³o ISO-8859-2 zdaje siê. Jakkolwiek, byleś deklarował to w poście. Brakuje Ci nagłówka Content-type. pozdrawiam, -- Mariusz 'koder' Chwalba
Re: Ociążenie procesora przez javascript
Author: porneL
Date: Tue, 15 Sep 2009 18:53
Date: Tue, 15 Sep 2009 18:53
40 lines
2568 bytes
2568 bytes
On Tue, 15 Sep 2009 07:29:13 +0100, MJM <oj.moze@lepiej.nie.pl> wrote:
> O tym muszê poczytaæ co to jest JIT i polymorphic inline caching. Z
> praktyki widzê, ¿e js w najnowszych wersjach przegl±darek nadal
> jest wolny (Google Chrome najszybszy, po ¶rodku Opera i FF a IE to
> potrafi przyprawiæ o ³zy). I obawiam siê, ¿e jest wolniejszy
> nawet ni¿ inne jêzyki skryptowe typu PHP.
Nie gdybaj, tylko sprawdzaj:
http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=tracemonkey&box=1
> bêdzie chodzi³ jak Java czy c#, o c nie wspominaj±c. Nie wiem
> jak chodzi Flashowy Action Script ale pewnie te¿ zostawia js daleko w
> tyle.
Action Script to jest odmiana ECMAScript, tak samo jak JS, więc nie ma
powodu, żeby różnica była tak duża jak w porównaniu ze statycznie typowaną
Javą.
Na dodatek silnik Action Script i firefoksowy TraceMonkey bazują na tym
samym NanoJIT:
http://www.mozilla.org/projects/tamarin/
> I tu dochodzimy do sedna mojego problemu. Chcia³bym
> pisaæ gry w js, na pocz±tek takie odpowiedniki gier flashowych i
> Javowo-apletowych. Uda³o mi siê napisaæ kó³ko i krzy¿yk 4x4x4 i
> teraz koñczê zumê. Jednak ze wzglêdu na powolno¶æ js nigdy nie bêdê mia³
> tylu mo¿liwo¶ci co w innych technologiach :(.
Pooglądaj sobie Chrome Experiments, bo twoja opinia o JS wydaje się być o
10 lat do tyłu. Podczas gdy ty uważasz kółko i krzyżyk za kres możliwości,
ludzie piszą software'owe renderery 3d w czasie rzeczywistym:
http://gyu.que.jp/jscloth/touch.html
http://deanm.github.com/pre3d/colorscube.html
--
http://pornel.net
this.author = new Geek("porneL");
Re: Ociążenie procesora przez javascript
Author: MJM
Date: Wed, 16 Sep 2009 06:43
Date: Wed, 16 Sep 2009 06:43
69 lines
5223 bytes
5223 bytes
Użytkownik "porneL" <niusy4@pornel.net> napisał w wiadomości news:op.u0barlkputk0y1@aimac.local... > On Tue, 15 Sep 2009 07:29:13 +0100, MJM <oj.moze@lepiej.nie.pl> wrote: > > >> O tym musze poczytaa co to jest JIT i polymorphic inline caching. Z praktyki widze, ?e js w najnowszych wersjach przegl?darek >> nadal >> jest wolny (Google Chrome najszybszy, po ?rodku Opera i FF a IE to potrafi przyprawia o 3zy). I obawiam sie, ?e jest wolniejszy >> nawet ni? inne jezyki skryptowe typu PHP. > > Nie gdybaj, tylko sprawdzaj: > http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=tracemonkey&box=1 Tak, znam shootouta, faktycznie, porownanie z PHP bylo mocno chybione. Ok, moja gafa, tym bardziej, ze w PHP nic nie pisalem. Tak strzelilem i widac - sobie w noge. >> bedzie chodzi3 jak Java czy c#, o c nie wspominaj?c. Nie wiem >> jak chodzi Flashowy Action Script ale pewnie te? zostawia js daleko w tyle. > > Action Script to jest odmiana ECMAScript, tak samo jak JS, więc nie ma > powodu, żeby różnica była tak duża jak w porównaniu ze statycznie typowaną > Javą. > > Na dodatek silnik Action Script i firefoksowy TraceMonkey bazują na tym > samym NanoJIT: > http://www.mozilla.org/projects/tamarin/ Flasha z js porownywalem po tym, co widze na stronach. Jak tylko jakas animacja czy gra to już flash. Javascript bardzo dobrze się sprawdza przy dodawaniu efektow do strony. Przy okazji, jak wyglada dodawanie efektow dzwiekowych w js? Bo jedyna fajna rzecz jaka znalazlem okazala sie byc wrapperem na flash'a. >> I tu dochodzimy do sedna mojego problemu. Chcia3bym >> pisaa gry w js, na pocz?tek takie odpowiedniki gier flashowych i Javowo-apletowych. Uda3o mi sie napisaa kó3ko i krzy?yk 4x4x4 i >> teraz koncze zume. Jednak ze wzgledu na powolno?a js nigdy nie bede mia3 tylu mo?liwo?ci co w innych technologiach :(. > > Pooglądaj sobie Chrome Experiments, bo twoja opinia o JS wydaje się być o > 10 lat do tyłu. Podczas gdy ty uważasz kółko i krzyżyk za kres możliwości, > ludzie piszą software'owe renderery 3d w czasie rzeczywistym: Zanim zaczniesz kogos oceniac sprawdz prosze: http://www.swietochlowice.org/~mierzwm/aptana/3dTTT/index.html Może nie jest to real time rendering ale już mi brakuje troszeczkę czasu żeby móc właczyć depth = 3. I nie uważam tego za kres możliwości, chciałem się tylko poradzić co o tym myślicie i w jakim kierunku się to rozwija. A co do software'owych renderów spojrz prawdzie w oczy - albo plugin który sprawę załatwia na niższym poziomie (jak google, bo zakladam, ze piszesz o O3D) a js służy tylko do "sterowania" albo te rendery renderują 3 minutki scenkę, którą na pokazywano 20 lat temu w demach animowaną. Co do pluginow to ja nie mam nic przeciwko, o ile tylko (marzenie) dojda do jakiejs standaryzacji (lub sie rozpowszechnia jak flash/java) i bedzie mozna spokojnie zalozyc, ze to co napiszesz to 90% uzytkownikow otworzy i obojetnie jaka ma przegladarke bedzie wygladalo tak samo. Poczytalem tez o Google gears i workers'ach, super sprawa ale w koncu nie wiem jak sie to ma do przegladarek. Wyglada na to, ae Chrome ma to wbudowane i jedymym skutkiem ubocznym jest pytanie do uzytkownika czy chce na to pozwolic (swoja droga skad biedny uzytkonik ma wiedziec co to...). Co do innych przegladarek jako (znowu) pluginy. Oprocz tego w js dalbym duzo aby moc wlaczyc koniecznosc deklarowania zmiennych. Ilez to razy mialem var moja_zmienna = 10 ... if (moja_zmiena == 10 ) ... Jest na to jakies rozwiazanie (zminimalizowac takie pomylki)? Jesli uzywam frameworka (mootools) to Aptana sie gubi w podpowiadaniu zmiennych. Ogólnie to js to bardzo balaganiarski jezyk, mootools troche przychodzi w sukurs uporzadkowaniu ale ma tez swoj narzut. Dziekuje za odpowiedz i pozdrawiam Michal Mierzwa PS. Zycie tak krotkie a tyle ciekawych rzeczy do poznania. Chcialbym sie jeszcze zaprzyjaznic z Adobe AIR ale spodziewam sie, ze Google bedzie na tym polu bardzo konkurowac wiec moze lepiej poczekac.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads