Почему браузеры такие тяжелые?

1434
Kaivosukeltaja

В 1998 году у меня был компьютер с процессором Pentium MMX 233 МГц и картой GFX без 3D-ускорения. Он мог запускать такие игры, как Quake II, с приличной скоростью FPS. Мой нынешний компьютер обладает гораздо большей производительностью и графическим процессором среднего класса, но изо всех сил пытается достичь 20 FPS при рендеринге одной модели внутри скайбокса с WebGL. Даже обычные страницы с большим количеством 2D-анимации CSS ставят многие современные компьютеры на колени.

Как веб-разработчик, я понимаю, что на веб-странице много чего происходит, но не то, что делает ее такой тяжелой. Современные браузеры компилируют JavaScript в собственный машинный код ЦП перед его выполнением, и рендеринг в элемент canvas не должен вызывать перестройки DOM, поэтому теоретически это должно быть намного быстрее, чем есть.

Что мне здесь не хватает, и можно ли избежать или свести к минимуму то, что замедляет работу браузеров для создания более эффективных веб-сайтов?

4

3 ответа на вопрос

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

Многие страницы выглядят медленными, потому что они запрашивают рекламу из разных мест. Другие страницы чувствуют себя медленно, потому что JavaScript плохо написан. Другие факторы были описаны Mokubai и пользователем *. Общий «знаменатель», хотя это javascript. Это в основном отвечает за замедление работы вашего браузера. Некоторые люди скажут, что это в первую очередь вспышка, но я бы не согласился. Хорошо написанные флеш-страницы скудны и подлые. 3D анимация, интерактивные игры, что угодно ... Основная проблема - люди, которые не умеют эффективно программировать. И это не всегда легко!

Тем не мение. Если вы запускаете Firefox, получите NoScript . Он будет блокировать весь javascript (и flash), позволяя вам включать «богатые» элементы поочередно или постранично. Если вы не фанат Firefox, то Google Chrome - ваш следующий лучший выбор, так как он действительно очень быстрый.

0
user978122

Сегодня веб-страницы намного больше, чем два десятилетия назад, и они также используют компоненты с большей нагрузкой на процессор, такие как Flash.

Веб-страница, созданная два десятилетия назад, будет иметь размер около 7 КБ, сегодня - около 200-300 КБ? И тогда вы можете использовать очень минимальный JavaScript с очень небольшим количеством изображений, и если бы они были изображениями, вы смотрели GIF-файлы или небольшие JPEG-файлы. И Flash может заблокировать машину с ее ужасной производительностью. Теперь у вас есть веб-сайты с несколькими элементами Flash, с разрешением 1920x1080 или более высоким.

Браузеры примерно так же эффективны, как и собираются.

0
Mokubai

Немного несправедливо сравнивать полноценную современную веб-страницу с 3D, CSS, AJAX и JavaScript со старой веб-страницей, где самым сложным было менять изображения на кнопках или на странице каждые несколько секунд.

То, что вы просите сделать браузер, усложняется на несколько порядков, моделирование трехмерных вычислений для того, чтобы передать его только на видеокарту, требует гораздо большей вычислительной мощности, чем простые веб-страницы «поместите изображение здесь» прошлых лет.

Модели в Quake не были сложными, управляя порядком в десятки полигонов на модель, а не в современных играх, которые ожидают десятки тысяч полигонов на модель.

Даже тогда я не ожидал бы увидеть значительное снижение производительности в браузере, и я бы посмотрел на вашу модель. Чем больше полигонов в модели, тем больше времени потребуется для расчета и передачи на видеокарту.

Попробуйте посмотреть, можете ли вы уменьшить сложность (количество полигонов) в своей модели в качестве первого случая, 3D всегда было гораздо больше для получения правильного уровня сложности в моделях, чтобы они выглядели хорошо, но не влияли производительность тоже плохо.

Этот сайт от Chrome Experiment - пример хорошего 3D-браузера в браузере, выглядит довольно гладко для меня (в Firefox), и это уровень детализации, который я ожидаю, чтобы работать хорошо. Если у вас проблемы с тем, что этот сайт мучительно медленный, мне было бы интересно узнать, использует ли ваш браузер видеокарту для рендеринга 3D.

Да, старые веб-страницы были намного проще, чем сегодня, но я не сравниваю с ними современные сайты - по крайней мере, намеренно. Моя точка зрения заключалась в том, что сайт, на который вы ссылались, вполне мог работать на Pentium так же гладко, если не гладко, как нативное приложение, даже без 3D-ускорения. Kaivosukeltaja 12 лет назад 1

Похожие вопросы