Don P: Web Workers?

Ausgehend von einem verlinkten Artikel hier im Forum bin ich schließlich auf die sog. Web Workers gestoßen und staunte nicht schlecht. Manche Browser sollen sowas es schon implementiert haben, z.B. der FireFox.

Leider ist bereits das erste verlinkte Beispiel dort in meinem FF nicht gerade ermunternd. Der Worker, der auf primitive Art pausenlos Primzahlen berechnet, lastet einen Prozessor zu 100% aus. Man sollte ihn also vorsichtshalber in neuem Tab öffnen, sonst wird man ihn nicht mehr los. Schließen lässt sich der Tab dann immerhin noch.

Obwohl der andere Prozessor im Dual-Core-System damit nichts zu tun hat, lässt sich FireFox nicht wirklich weiter bedienen. Dabei ist das doch gerade das Sinn der Übung, nämlich arbeitsintensive Scripts laufen zu lassen, ohne dass die Oberfläche einfriert und auch ohne setTimeouts.

Habe dann versuchsweise die jüngste FF-Beta-Version installiert, weil die Dual-Core unterstützt, aber derselbe Worker beansprucht dann einfach beide Prozessoren zu 100% (Achtung Lüfterlärm), und die Oberfläche friert ebenfass ein, jedenfalls so gut wie.

Hat jemand schon Erfahrung mit solchen Web Workers gemacht, womöglich bessere? Kann man die vielleicht doch schon sinnvoll benutzen?
Die Sache finde ich sehr interessant, aber bevor ich mich weiter da rein vertiefe, erst mal rumfragen...

Gruß, Don P

  1. Grüße,
    nimm Opera 10.6 - die begnügt sich dabei mit ca 70% der 1,9ghz cpu :)
    ich bin recht neugierig auf die kombo offlineApps und WebWorkers - das erlaubt recht angenehme anwendungen, mit potenzieller html5fileAPi wird es erst ercht interessant^^
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
  2. Der Worker, der auf primitive Art pausenlos Primzahlen berechnet, lastet einen Prozessor zu 100% aus.

    Logisch. Wenn ein Prozess laufen kann, dann läuft er, und eine Dauerberechnung läuft dann halt dauernd. Für solche Fälle bieten Betriebssysteme Priorisierungen an, damit andere, wichtigere Prozesse auch mal dürfen – bei Web Workers scheint das aber nicht vorgesehen zu sein.

    Obwohl der andere Prozessor im Dual-Core-System damit nichts zu tun hat, lässt sich FireFox nicht wirklich weiter bedienen.

    Firefox war nie und ist nicht auf die Nutzung mehrerer Kerne ausgelegt, alles läuft in demselben Prozess ab. Das ist schon länger ein Problem, weil eine amoklaufende Webseite sämtliche in anderen Tabs geöffneten Seiten mit in den Abgrund zieht (und den Browser gleich mit), obwohl die mit der einen pösen Seite gar nichts zu tun haben.

    Chrome startet IIRC für jede Webseite einen eigenen Prozess, was schon sinniger ist. Das eigentliche Problem ergibt sich aber IMHO daraus, dass der Browsercode offenbar keine Priorität über dem Webseitencode hat.

    Ob sich das bei Firefox noch ändert – keine Ahnung. Aber die stehen ja auch erst am Anfang.

  3. Hi,

    Ausgehend von einem verlinkten Artikel hier im Forum bin ich schließlich auf die sog. Web Workers gestoßen und staunte nicht schlecht. Manche Browser sollen sowas es schon implementiert haben, z.B. der FireFox.

    Opera 10.60 Beta jetzt wohl auch - vielleicht hast du ja Lust, es auch mal mit diesem zu testen.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hallo,

      Hab' ich gemacht. Während ich dies schreibe, werkelt der Demo-Worker im anderen Fenster mit Vollgas und beschäftigt nur eine CPU von beiden. Das klappt soweit. Opera wird dabei zwar langsamer, ist aber immerhin noch bedienbar.

      Gruß, Don P