Почему браузеры стали такими прожорливыми?
============================================

 Обычно я не работаю с большим (8+) количеством приложений одновременно, но в этот раз в этом возникла острая необходимость.  
  

И каково было моё удивление, что мой ПК с 4 Гб оперативной памяти, которых обычно с лихвой хватало на все ежедневные задачи, не может держать в ОЗУ несколько приложений и начинает сбрасывать часть данных в файл подкачки жёсткого диска, вызывая нешуточные тормоза.  
  

Диспетчер задач показал страшную картину: больше остальных, оперативку ел именно браузер (Vivaldi). Причём, заметно больше остальных. Было открыто 10 вкладок, на которые браузер суммарно тратил полтора (!!!) гигабайта оперативной памяти. Причём, это были не флеш-игры, а самые обычные страницы на 3-4 экрана со статическим содержимым.  
  

Ну, думаю, ладно. Закрою-ка я браузер и ради эксперимента открою только 2 страницы: главную страницу Яндекса и Youtube'а. Результат: 600 мегабайт. 600. Мегабайт.  
  

Не поверив глазам, я, открывая эти же 2 страницы, сравнил прожорливость браузеров на других движках (Mozilla, IE, Edge), но результаты оказались примерно такими же. Разве что, Opera Neon показал меньший аппетит, но и там оказалось немало - 400 мегабайт.  
  

Так в чём же причина? Почему интернет стал таким тяжёлым? И какой тогда смысл в увеличении производительности ЭВМ, если прожорливость ПО растёт пропорционально мощности ПК? 

> И какой тогда смысл в увеличении производительности ЭВМ, если прожорливость ПО растёт пропорционально мощности ПК?

  
  

А какой смысл в увеличении производительности, кроме как для того чтобы более медленное ПО летало???  

;)  
  

>   
> 
> Так в чём же причина? Почему интернет стал таким тяжёлым? 

  
  

1. Усложнение стандартов.  

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

 Всегда есть выбор [lynx.browser.org](http://lynx.browser.org/)  

или  

[https://developer.mozilla.org/ru/docs/Web/API/Web\_...](https://developer.mozilla.org/ru/docs/Web/API/Web_Audio_API)  

[https://developers.google.com/web/updates/2016/03/...](https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web)  

[https://developer.mozilla.org/en-US/docs/Web/API/W...](https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API)  

<https://ru.wikipedia.org/wiki/WebGL>  

[https://developer.mozilla.org/ru/docs/Web/CSS/CSS\_...](https://developer.mozilla.org/ru/docs/Web/CSS/CSS_Grid_Layout)  

<https://developer.mozilla.org/ru/docs/Web/CSS/animation>  

[https://developer.mozilla.org/uk/docs/Web/API/Canv...](https://developer.mozilla.org/uk/docs/Web/API/Canvas_API) 

> Так в чём же причина? Почему интернет стал таким тяжёлым? И какой тогда смысл в увеличении производительности ЭВМ, если прожорливость ПО растёт пропорционально мощности ПК?

  
  

Время идет, в интернете появляется более качественный, а следовательно, более объемный контент: выше разрешение изображений, видео, и т.д. А рост производительности пк скорее следствие роста прожорливости ПО. 

 FireFox 56.0 (64Bit): 50 открытых вкладок - 200Мб.  

Нужно правильно фильтровать JS-функции. 

 1. JS очень не эффективный по потреблению ресурсов язык (изза свой природы скриптового, динамически типизированного языка).   

2. Разрабы на свои сайты пихают всякое дерьмо, начиная от 25 сервисов статистики и трэкинга пользователей, заканчивая всякими сервисами обратных звонков, чатов, прыгающих кнопок, бесконечных библиотек, как сделать розовый переход на фоне и тд и тому подобное. Все эти библиотеки еще подтягивают еще по 50 сторонних библиотек, например ебанный джейквери, который нахер не нужен но его все равно все подряд подключают, потому что подавляющее большинство разрабов не могут, не умеют и НЕ ХОТЯТ делать экономичный и эффективный код. 

 Чините браузер: <https://i.imgur.com/xEHeMNW.png> 

 Тут все пишут, что JS разработчики такие-сякие, гонятся за новыми версиями и красивыми плюшками, сами за памятью не следят, а сборщик мусора у них плохо работает, и вообще они все такие редиски. Может это и так, но будет интересно, если кто-нибудь объяснит мне, человеку темному, почему происходит вот такое (подопытный - хром под линуксом, это случалось на всех сайтах, где я проверял, расширения все отключил для чистоты эксперимента):  
![59d32ab2ecb36167727227.png](https://habrastorage.org/webt/59/d3/2a/59d32ab2ecb36167727227.png)  

Сеть показывает, что было скачано где-то 1.2MB. Как мы можем видеть, куча, в которой "сборщик мусора плохо убирается" меньше 30MB. Если сложить значения из правой колонки, получится около 50MB (по грубой оценке). Страница стоит, я не скроллил ее, ничего не нажимал, запись выделения памяти пустая, т.е. память не выделяется (не стал скриншотить - там просто все пустое), а вкладка потребляет почти 200MB. Если начать что-то делать (например скроллить, тем самым вызывая перерисовку всего), то память начнет выделяться, что будет видно в соответствующей записи, но общее количество потребляемой памяти не изменится. Если открыть htop, то он покажет, что хром потребляет памяти чуть больше, чем в сумме получается у его собственного диспетчера задач, так что там сильного подвоха нет. Или я что-то совсем очевидное не вижу или каждая вкладка заводит себе "хомячка", который берет себе памяти про запас, но сам ее сразу не использует. 

 Браузеры как раз становятся быстрее и быстрее, просто сайты становятся тяжелыми, миллион картинок, видео, анимации и .т.д.