24
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.

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

  • Upload
    ovidio

  • View
    20

  • Download
    3

Embed Size (px)

DESCRIPTION

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:. - PowerPoint PPT Presentation

Citation preview

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

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.

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

A Javascript nem erre való!

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

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

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

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

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

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

index.html

hello.js

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

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

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

Többszálú teljesítmény

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

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

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

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

PHP 5.2: 5,26 sec

A Javascript lassú.

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

Perl 5.10: 3,26 sec

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

Google Chrome 5: ??? sec

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

Google Chrome 5: 0,05 sec

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

Egy másik teszt

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

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ő

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

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

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

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

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

Az objectWorker használata

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

A worker.js

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

Bonyolult? – Nem, sőt!

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

Na és az Internet Explorer?

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

Ö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

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

Köszönöm a figyelmet!

Farkas MátéBudapest.js meetup 2010.04.14.