1 / 24

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

ovidio
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 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. 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. index.html hello.js

  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. Többszálú teljesítmény http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/

  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. A Javascript lassú. PHP 5.2: 5,26 sec

  10. Perl 5.10: 3,26 sec

  11. Google Chrome 5: ??? sec

  12. Google Chrome 5: 0,05 sec

  13. Egy másik teszt

  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. 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. 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. Az objectWorker használata

  18. A worker.js

  19. Bonyolult? – Nem, sőt!

  20. Na és az Internet Explorer?

  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. Köszönöm a figyelmet! Farkas MátéBudapest.js meetup 2010.04.14.

  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/

More Related