Zum Hauptinhalt Zur Navigation Zur Suche

Tinic Uro: Flash bremst den Browser nicht aus

Webdesigner sind schuld, wenn Flash die CPU unnötig belastet. Nachdem Googles Chrome das Thema Browserperformance ins Licht der Öffentlichkeit gerückt hat, knüpfen sich manche nun auch Flash vor, denn "Flash bremst den Browser aus", ist mancherorts zu lesen. Doch das will Adobe-Entwickler Tinic Uro so nicht stehen lassen. Er mahnt vor allem vor der unnötigen Verwendung von WMODE.
/ Jens Ihlenfeld
93 Kommentare Auf Google folgen (öffnet im neuen Fenster)

Uro ist maßgeblich an der Entwicklung von Adobes Flash-Player beteiligt und bezieht in seinem Blog Stellung(öffnet im neuen Fenster) zu dem Vorwurf, Flash bremse den Browser aus. Anders als das statische Dokumentenformat HTML sei Flash auf die Darstellung multimedialer Inhalte ausgelegt und die Darstellung von Animationen und Video belaste die CPU nun einmal dauerhaft, während das Rendern einer Website den Prozessor nur sehr kurzfristig in Beschlag nehme. Wenn eines Tages der Browser multimediale Inhalte direkt abspiele, werde sich die Ressourcennutzung der von Flash angleichen, so Uro.

Auch mit Ajax sei Flash nicht zu vergleichen, denn damit würden primär sogenannte RIAs (Rich Internet Applications) wie Google Mail oder Maps erstellt und gute Applikationen würden nun auch Nutzereingaben oder Netzwerkaktivität reagieren. So sei auch hier die CPU-Nutzung auf kurze Zeiträume beschränkt, anders als bei Flash-Animationen oder Videos. In Flash realisierte RIAs seien nicht mehr CPU-intensiv als entsprechende Ajax-Applikationen, es sei denn, die Entwickler würden sie mit oft unnötigen Animationen bestücken, die zugleich die Benutzbarkeit beeinträchtigen.

Dennoch gibt es Situationen, in denen Flash die CPU auslastet, obwohl es in keinem aktiven Tab zu sehen ist, räumt Uro ein. Adobe habe zusammen mit Browserherstellern versucht, die Flash-Ausführung zu stoppen, sobald das jeweilige Tab nicht mehr sichtbar ist. Die Ergebnisse seien aber eher einem Desaster gleichgekommen, denn damit schaltet auch der Ton ab, es werden keine Daten mehr über das Netzwerk übertragen und somit beispielsweise auch keine Videos im Hintergrund geladen. Zudem wird die ActionScript-Ausführung angehalten.

Das eigentliche Problem, so Uro, sei die falsche Verwendung von WMODE. Läuft Flash in einem versteckten Tab, stoppt eigentlich auch das Rendern der Inhalte, was die CPU am stärksten belastet. Es sei denn, die Flash-Inhalte laufen im fensterlosen Modus, der mit WMODE(öffnet im neuen Fenster) aktiviert wird, z.B. um Werbung mit transparenten Layern über der Website einzublenden. In diesem Fall kann Flash nicht feststellen, wann ein Tab versteckt ist, und rendert Inhalte auch dann, wenn sie niemand sehen kann. Dabei werden diese Funktionen in vielen Fällen genutzt, obwohl es gar nicht notwendig ist, so Uro.

Nicht Flash sei schuld, vielmehr seien es die Webdesigner, die Flash falsch einsetzen, meint Uro. Abhilfe schaffen könnten hier klare Regeln für Flash-Werbung, wie sie beispielsweise Google seinen Werbekunden vorschreibt. Dort dürfen Flash-Animationen nicht länger als 15 Sekunden dauern, dabei mit 15 bis 20 Frames pro Sekunde ablaufen und danach statisch sein.

Uro empfiehlt, diese Regeln noch zu erweitern: Um sicherzustellen, dass nach dem Abspielen der Animation die CPU nicht mehr belastet wird, sollte das ActionScript-Kommando stop() verwendet werden. Darüber hinaus sollten Maus-Tracking und die Behandlung von Maus-Events erst nach einem Klick in das Werbemittel aktiviert werden.

Hinzu kommt ein Punkt, der Uro besonders am Herzen liegt: WMODE sollte nur dann verwendet werden, wenn es unbedingt benötigt wird. Denn sobald damit der fensterlose Modus aktiviert wird, belaste Flash ständig die CPU: "If you use WMODE the Flash Player will continue to suck up CPU cycles as if the tab was visible.". Zudem sei der fensterlose Modus grundsätzlich etwas langsamer als der normale Modus.

Würden diese einfachen Regeln eingehalten, so Uro, würden fast alle Klagen über Flash verschwinden. Adobe habe diesbezüglich aber nur begrenzten Einfluss. Adobe arbeitet derweil unter anderem an einer besseren Hardwarebeschleunigung von Flash-Inhalten. Ein erster Schritt in diese Richtung ist der kommende Flash Player 10, der derzeit als Release Candidate vorliegt.


Relevante Themen