Warum sind Browser so schwer?

1471
Kaivosukeltaja

1998 hatte ich einen Computer mit 233MHz Pentium MMX-CPU und eine GFX-Karte ohne 3D-Beschleunigung. Es war in der Lage, Spiele wie Quake II mit einer anständigen FPS-Rate auszuführen. Mein aktueller Computer bietet eine viel höhere Leistung und eine Mittelklasse-GPU. Trotzdem ist es schwierig, bei der Wiedergabe eines einzelnen Modells in einer Skybox mit WebGL 20 FPS zu erreichen. Selbst normale Seiten mit vielen 2D-CSS-Animationen bringen viele moderne Computer in die metaphorischen Knie.

Als Web-Entwickler verstehe ich, dass auf einer Webseite viel los ist, aber nicht, was sie so schwer macht. Moderne Browser kompilieren JavaScript vor dem Ausführen von JavaScript in CPU-eigenen Maschinencode. Das Rendern in ein Canvas-Element sollte keine DOM-Neuerstellungen auslösen, so dass es theoretisch viel schneller sein sollte als es ist.

Was fehlt mir hier und kann vermieden oder minimiert werden, was die Browser langsamer macht, um effizientere Websites zu erstellen?

4

3 Antworten auf die Frage

1
Ярослав Рахматуллин

Viele Seiten fühlen sich langsam an, weil sie Anzeigen aus verschiedenen Orten anfordern. Andere Seiten fühlen sich langsam an, weil das Javascript schlecht geschrieben ist. Andere Faktoren wurden von Mokubai und dem Benutzer * beschrieben. Der gemeinsame "Nenner" ist allerdings Javascript. Es ist im Wesentlichen dafür verantwortlich, dass Ihr Browser langsam wird. Einige Leute werden sagen, dass es in erster Linie Flash ist, aber ich würde dem nicht zustimmen müssen. Gut geschriebene Flash-Seiten sind schlank und gemein. 3D-Animationen, interaktive Spiele, was auch immer ... Das Hauptproblem sind Leute, die nicht wissen, wie man effizient programmiert. Und es ist nicht immer einfach!

Sowieso. Wenn Sie Firefox ausführen, erhalten Sie NoScript . Es blockiert alle Javascript- (und Flash-) Funktionen, während Sie "Rich" -Elemente einzeln oder Seite für Seite aktivieren können. Wenn Sie kein Fan von Firefox sind, ist Google Chrome Ihre nächste beste Wahl, da es wirklich sehr schnell ist.

0
user978122

Webseiten sind heute viel größer als vor zwei Jahrzehnten und sie verwenden auch mehr CPU-intensive Komponenten wie Flash.

Webseite von vor zwei Jahrzehnten wäre etwa 7KB, heutzutage sind es etwa 200-300K? Damals können Sie sehr wenig JavaScript verwenden, da nur sehr wenige Bilder vorhanden sind. Wenn es sich um Bilder handelt, haben Sie sich GIFs oder kleine JPEGs angesehen. Und Flash könnte eine Maschine mit ihrer schrecklichen Leistung blockieren. Jetzt gibt es Websites mit mehreren Flash-Objekten, die JPEGs mit 1920 x 1080 oder mehr enthalten.

Browser sind in etwa so effizient wie sie werden.

0
Mokubai

It's a bit unfair to compare a full 3D, CSS, AJAX and JavaScript laden modern webpage with an old webpage where the most complicated it got was swapping images around on buttons or in the page every few seconds.

What you are asking the browser to do is more complicated by several orders of magnitude, 3D calculations modelling in order to pass it to the graphics card alone requires much more processing power than the simple "put image here" webpages of yesteryear.

The models in Quake were not complicated, managing of the order of tens of polygons per model rather than modern games that expect tens of thousands of polygons per model.

Even then I would not expect to see a massive degredation in performance in the browser and I would be looking at your model itself. The more polygons in the model, the longer it will take to calculate and pass to the graphics card.

Try looking to see if you can reduce the complexity (number of polygons) in your model as a first case, 3D has always been much more about getting the right level of complexity in the models so that they look good, but don't affect performance too badly.

This site from Chrome Experiments is an example of good in-browser 3D, looks pretty smooth to me (in Firefox) and it is the level of detail I would expect to run well. If you have problems with that site being painfully slow then I would be curious as to whether your browser is actually using the graphics card to render 3D.

Ja, alte Webseiten waren viel einfacher als heute, aber ich vergleiche sie nicht mit modernen Webseiten - zumindest nicht absichtlich. Mein Punkt war, dass die Site, mit der Sie verlinkt haben, auf einem Pentium als native Anwendung auch ohne 3D-Beschleunigung genauso glatt, wenn nicht sogar reibungsloser verlaufen könnte. Kaivosukeltaja vor 11 Jahren 1