Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni? Farkas Máté Budapest.js meetup 2010.04.14.

Hasonló előadás


Az előadások a következő témára: "Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni? Farkas Máté Budapest.js meetup 2010.04.14."— Előadás másolata:

1 Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni? Farkas Máté Budapest.js meetup 2010.04.14.

2 A Javascript nem erre való! http://weblabor.hu//blogmarkok/104451#comment-67266

3 A Javascript ütemező működése http://ejohn.org/blog/how-javascript-timers-work/

4 A legnagyobb hátrány: • Amíg Javascriptben számítást végzünk, semmi más nem történhet a böngészőben • Kivétel jelenleg: Opera • És majd a Webkit 2 alapú böngészők

5 A megoldás: Web Worker • A Google Gears-féle WorkerPool szabványosítása, a HTML 5 része • A Worker egy teljesen különálló folyamatként dolgozik, csak a létrehozójával tud kommunikálni, és vele is csak üzenet küldéssel

6 index.html hello.js

7 Használati előnyök • A böngésző „lefagyasztása nélkül” tudunk hosszabb számításokat végezni • Kihasználhatóak a több magos processzorok • demo

8 Többszálú teljesítmény http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/

9 Böngésző támogatás • Chrome: minden worker új process • Safari: minden worker új szál • Firefox: nem string értékek küldése/fogadása is lehet • Opera: nem támogatja • Internet Explorer: nem támogatja

10 PHP 5.2: 5,26 sec A Javascript lassú.

11 Perl 5.10: 3,26 sec

12 Google Chrome 5: ??? sec

13 Google Chrome 5: 0,05 sec

14 Egy másik teszt

15

16 Böngésző támogatás 2 • A HTML 5 Worker nem kompatíbilis a Gears-féle WorkerPool-lal • Volt több próbálkozás szimulálni ezt a viselkedést (jsworker, ie-web- worker), de egyik sem kielégítő

17 emulatedWorker.js • Elég ezt betölteni, és a Worker API-t használó Javascript futni fog minden böngészőben… • … de ettől nem lesz többszálú… • … és komolyabb adatszerkezetek- nél bonyolult az üzengetés

18 objectWorker.js • Egy intuitív absztrakció a Workerek használatához • (Típusjelzéssel ellátott) objektumok küldése/fogadása • Eljárás hívás

19 Az objectWorker használata

20 A worker.js

21 Bonyolult? – Nem, sőt!

22 Na és az Internet Explorer?

23 Összefoglalás • Kis odafigyeléssel ma már írhatunk programot Javascriptben • Weboldalak esetén egyszerűen küldhetjük háttérbe a számítási feladatokat • Worker-képes böngészővel teher- mentesíthető a szerverünk

24 Köszönöm a figyelmet! Farkas Máté Budapest.js meetup 2010.04.14.

25 Forráskódok, források • HTML 5 Web Workers http://www.whatwg.org/specs/web- workers/current-work/http://www.whatwg.org/specs/web- workers/current-work/ • Mozilla MDC https://developer.mozilla.org/En/DOM/Workerhttps://developer.mozilla.org/En/DOM/Worker • http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster _More_Powerful_JavaScript_World/ http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster _More_Powerful_JavaScript_World/ • http://ejohn.org/blog/how-javascript-timers-work/ http://ejohn.org/blog/how-javascript-timers-work/ • Forráskódok: http://fmate14.try.hu/2010/bpjs-objectWorker/http://fmate14.try.hu/2010/bpjs-objectWorker/ • objectWorker és emulatedWorker: http://code.google.com/p/object-worker/ http://code.google.com/p/object-worker/


Letölteni ppt "Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni? Farkas Máté Budapest.js meetup 2010.04.14."

Hasonló előadás


Google Hirdetések