Többszálú javascript

362 views
312 views

Published on

Budapest.js 2010.04.14.
Web workers

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
362
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Kezdetben volt a HTML…
  • 10ms timeout és 10ms interval. A Dropped-nél másodjára került volna bele. Megemlíteni, honnan van.
  • Demo: natív módban
  • Fibonacci az MDC oldalán
  • Meg kell különböztetni a weboldalt és a web alkalmazást!
  • Most hagyjuk egy kicsit a workereket!
  • Jsworker: globális scope-ba teszi az importScripts dolgokat. Ie-web-worker: külön api. Mindkettő csak próbálkozás volt, nem tartják karban.
  • Többszálú javascript

    1. 1. Többszálúság a böngészőben, avagymerjünk-e Javascriptben programot írni? Farkas Máté Budapest.js meetup 2010.04.14.
    2. 2. A Javascript nem erre való! http://weblabor.hu//blogmarkok/104451#comment-67266
    3. 3. 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
    4. 4. 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
    5. 5. index.htmlhello.js
    6. 6. 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
    7. 7. Többszálú teljesítményhttp://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/
    8. 8. 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
    9. 9. A Javascript lassú.PHP 5.2: 5,26 sec
    10. 10. Perl 5.10: 3,26 sec
    11. 11. Google Chrome 5: ??? sec
    12. 12. Google Chrome 5: 0,05 sec
    13. 13. Egy másik teszt
    14. 14. 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ő
    15. 15. 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
    16. 16. 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
    17. 17. Az objectWorker használata
    18. 18. A worker.js
    19. 19. Bonyolult? – Nem, sőt!
    20. 20. Na és az Internet Explorer?
    21. 21. Ö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
    22. 22. Köszönöm a figyelmet! Farkas Máté Budapest.js meetup 2010.04.14.
    23. 23. 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/

    ×