T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni
Sponsored Links
This presentation is the property of its rightful owner.
1 / 24

Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni? PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

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. A Javascript nem erre való!. http://weblabor.hu//blogmarkok/104451#comment-67266. A legnagyobb hátrány:.

Download Presentation

Többszálúság a böngészőben, avagy merjünk-e Javascriptben programot írni?

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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.


A Javascript nem erre való!

http://weblabor.hu//blogmarkok/104451#comment-67266


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


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


index.html

hello.js


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


Többszálú teljesítmény

http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/


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


A Javascript lassú.

PHP 5.2: 5,26 sec


Perl 5.10: 3,26 sec


Google Chrome 5: ??? sec


Google Chrome 5: 0,05 sec


Egy másik teszt


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ő


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


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


Az objectWorker használata


A worker.js


Bonyolult? – Nem, sőt!


Na és az Internet Explorer?


Ö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


Köszönöm a figyelmet!

Farkas MátéBudapest.js meetup 2010.04.14.


Forráskódok, források

  • HTML 5 Web Workers http://www.whatwg.org/specs/web-workers/current-work/

  • Mozilla MDC https://developer.mozilla.org/En/DOM/Worker

  • http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/

  • http://ejohn.org/blog/how-javascript-timers-work/

  • Forráskódok: http://fmate14.try.hu/2010/bpjs-objectWorker/

  • objectWorker és emulatedWorker: http://code.google.com/p/object-worker/


  • Login