Pull to refresh

Comments 71

Мир идет вперёд, а вместе с ним и требования программного обеспечения. Когда-то и 20 МБ на жёстком диске казалось роскошью
О чем статья? Ну не нравятся ведущие браузеры, возьми и сделай свой браузер своей мечты, завоюй рынок с его помощью.
У каждого свои потребности и под всех не подстроишься. Да, тенденция понятна, вроде бы та же программа, а жрет теперь черти сколько памяти, ну так сиди на предыдущей версии, если в ней все устраивало или ищи аналоги.
Когда-то и программирование было искусством.
Мир меняется и это не избежно. И в этой ситуации грамотнее будет цинично наплевать и бежать впереди паровоза, чем творчески сетовать на неизбежное.
Сегодня редко встретишь пользователя ПК, у которого интернет-браузер не входит в топ-5 самых часто запускаемых программ.


Я такой редкий. Самые запускаемые у меня «блокнот», калькулятор, writer, calc и steam. Браузеры, IDE, IMы, консоли и т. п. запускаю редко, только когда обновление ядра прилетает. :)

А у хромообразных браузеров по-моему есть такая особенность как сжирать всю доступную память, но в своп без крайней нужды не лезть. Ещё бы отдавать научились, когда другая прога лезет в своп — вообще было бы замечательно. А так время от времени приходится жать Shift+Esc и убивать процессы активно серфящих вкладок Вот сейчас хабра занимает 210 метров, еще пара вкладок на 100, а остальные по 40-50.

Хромом или Фоксом. Но я их редко запускаю. Пришло обновление ядра, ребутнулся, запустил браузеры, ИДЕ, торренты и т. п. и до следующего обновления не запускаю, потому что не закрываю
Ну я бы не стала говорить, что браузер не входит в ТОП-5 самых используемых программ в этом случае.
топ-5 самых часто запускаемых программ
Я писал расширения под хром. Расход памяти и CPU — это плата за изоляцию страниц друг от друга. Да, памяти потребляется больше, но при этом если javascript какой-то страницы зависает, или некорректный CSS приводит к падению кода браузера — закрывается не весь браузер, а одна страница. Это удобно.

Оптимизация по памяти — не очень популярная штука, потому что разработка стоит денег, а память дешева. Это только в идеальном мире разработчики могут «собраться, попить кофе и все сделать». А на практике — это не добрые волшебники, которые чего-то не делют потому что «лень», а хмурые дядьки на зарплате которым и с ребенком хочется посидеть, и пива с друзьями попить. А кроме оптимизации памяти там и других задач навалом. Более приоритетных.
кхм… как часто у вас валятся вкладки/браузер из-за css/js? Могу понять плагины (для этого опера их выделила в отдельный процесс), но от остального браузер ни разу не падал.
Зависит от сложности и качества посещаемых сайтов. Если взять интернет эксплорер последней версии без флэша и начать посещать популярные порносайты с попапами и кучей фрагментов друг друга — минут через 20 оно стабильно зависает.
Не смешите, от css анимации даже винда падала:) (XP)
ЧЯДНТ, что у меня браузер падал только из-за плагинова (а-ля флеш)?
Прочитайте внимательнее, падала винда полностью:) Windows ХР, не новое железо, хотя и мощное. Была открыта страница демки css-анимации, где этой анимации было много. Еще винда падала, когда я включала в хроме WebGL. Иногда падает и сам хром при большой нагрузке. Другие браузеры не падали, но они используются только для тестирования, а хром для разработки. А вы не под линуксом ли случайно сидите?
В том и дело что win (xp,vista,7)
Проблема, между прочим, может быть вполне себе аппаратная. Пяток лет назад у меня была машинка на базе Pentium D и Foxconn матерью. Я так и не разобрался, что именно давало сбои, но переодически машина падала в синий экран, падали и отдельные приложения. Со 100% вероятностью можно было воспроизвести проблему, попробовав разархивировать большой архив, больше 1ГБ — не удавалось из-за ошибки CRC. На той машине часто висли вкладки в браузерах. Часто вместе с самим браузером и ОС. Кстати, на этой машине просто невозможно было скомпилировать генту.
И это точно не память, менял очень много планок. Скорее всего мать.
Я думаю, что в моем случае дело в этом железе + этой винде. Потому что после синих экранов и саморебутов обычно зовутся сисадмины (это офисный комп), чтобы смотреть логи, и если глючил какой-то компонент из железа, его заменяют. Так мне уже поменяли оперативку и хард. Но в те разы ничего не было замечено. Просто браузер загружал проц на 100%, а потом хлоп — и ребут винды. К слову сказать, вся контора сидит на старом железе (своя комиссионка, с нее и кормимся), но у кого win7 — живут нормально, поэтому я так в уме все это прикидываю и делаю выводы.
Интересный вопрос: а ребут был чистый? Ну т.е. без задержек на какие-либо действия винды?
Если да, то возможно проблема похожа на ту, с которой я сталкивался в сочетании бракованная материнка + Duron 1300. Суть в том, что при активном использовании процессора (полной загрузке) один из компонентов у меня перегревался (возможно, что и сам проц, ибо он грелся до 90 градусов летом — нефиг делать) и наглухо падали в ребут.
Бракованной материнку я называю по той причине, что запуск системы был тоже весьма необычным: если в помещении более-менее прохладно (ниже 26 градусов), то материнка/проц некоторое время (от полуминуты до минут 5, опять же в зависимости от температуры в комнате) «прогревались» (выдавая высочастотные звуки в системный динамик) и лишь потом происходил запуск.
В моем случае один из моих вариантов тоже была температура. Pentium D очень жаркий сам по себе. Навешал на него кулеров, следил за температурой, выше 60 не поднималась.
У Intel всегда был ниже порог… Мой Duron ниже температуры 65 градусов (при комнатной температуре 18 градусов) никогда не опускался при работе…
Ну просто до того как я кулеров навесил было 96 и выше.
Спасибо за отзыв. Ради надежности каждой вкладке присвоен собственный процесс. И я догадываюсь, что несколько таких однотипных процессов обращаются к ядру каждый для себя. Позволю следующую жизненную аналогию: Ваня и Дима — близнецы. За яблоками для пирога бабушка отправила обоих братьев, при этом одному надо купить красные, а другому — зеленые, но в то же время — приобрести несколько яблок другого цвета. В итоге братья съели часть яблок по дороге домой, потратили лишние деньги, а у бабушки остался лишний килограмм яблок. Бабушка могла просто попросить любого из них купить полкило яблок. :)

Тогда как в «олдскульных» браузерах ничего подобного нет. Из-за чего и расходуется память. Поправьте, если ошибаюсь.
Только близнецы могут пойти на разные рынки, к разным продавцам, в разное время, и кроме бабушки и их самих никто не знает, что они близнецы. А на слово верить нельзя, а то злоумышленники тоже назовуться близнецами, и будут тырить яблоки.
В целом да. Но использование процессов — это как раз следствие обустройства «песочницы» для каждой страницы. Есть много других способов, по ряду критериев были выбраны процессы. Память будет тратится по любому, потому что изоляция страниц и плагинов друг от друга в первую очередь требует дублирования общих данных — это цена песочницы.

На современных сотовых телефонах песочница тоже организована за ту же цену. Айфоны вообще вначале были «однозадачными». И не потому, что это было архитектурное ограничение операционки, а потому, что каждое приложение было в отдельной песочнице и запуск параллельно двух и более песочниц потребовал бы больше памяти, чем тогда было. С выходом следующей версии — когда памяти стало намного больше — многозадачность «включили» — теперь два или три часто используемых приложения могли одновременно жить каждое в своей песочнице и выгружались только когда закончится память.

Все современные телефоны основаны на парадигме песочниц. MacOS так работает очень давно. Windows 8 в своем Metro интерфейсе сделало песочницы. Это все потому, что производители платформ разочаровались в программистах. Ну не может средняя команда разработки сделать приложение, которое будет делить ресурсы (любые) с другими и вообще нигде не накосячит. Каждое косячит по чуть-чуть, в результате через сотню поставленных программ XP тихо «умирает» под грузом незначительных, о накапливающихся косяков. Песочницы устранят эту проблему ценой колоссального потребления памяти. Но, как уже говорилось — память дешевеет, а тормозящие компьютеры и падающие сайты мало кто любит.
По крайней мере некоторое время назад «изоляция» была не совсем изолирующая :)
В смысле если открывать табы со страницами страницы на одном сайте по ссылке или через жабаскрипт то умирали они коллективно.

Более подробно описано вот тут:

dev.chromium.org/developers/design-documents/process-models

Не знаю, актуально-ли до сих пор, или уже поменяли.
Недавно с нуля установленный хром не отвечает принципу «вкладка» — «процесс». Есть подозрение, что или где-то в настройках есть максимальное количество процессов, или смотрит на доступные ресурсы (прежде всего память), и решает не на каждую вкладку процесс запускать. По крайней мере при 4 Гб и около 70 открытых вкладок, некоторые склеиваются в один процесс (что в htop, что по Shift+Esc) не по всегда понятному приницпу.
Может потому, что есть потоки, а есть процессы?
Не знаю, не вникал. Но через какое-то то ли время, то ли количество открытых вкладок, процессы то ли перестают создаваться, то ли делают это не так интенсивно.
Я попробую пояснить свое предположение. Если концепция говорит одна вкладка=один процесс, это вовсе не означает, что в еденицу времени будет созданно столько процессов, сколько открыто вкладок.
Будет создан пулл процессов. У пулла есть начальная капасити, и максимальная капасити. Начальная капасити говорит нам, сколько процессов нужно создать и подготовить при старте. Максимальная либо захардкожена, либо вычисляется в рантайме по производительности конкретной машины.
Каждая вкладка получает из пулла процесс только когда он ей нужен, и возвращает на место по окончании работы. Либо, когда пулл достиг своего максимального размера, и в нем нет свободных процессов, система забирает процессы у неактивных вкладок и отдает их активным самостоятельно и насильственно (замечали, когда овер 50 вкладок, и открываешь одну из первых — она даже не сразу рендерится). Возможно, там даже есть некое подобие IRQ, которое дает каждому потоку процесс на определенное время (музыка продолжает играть все время, в независимости от того, когда была открыта вкладка и сколько всего вкладок открыто; но бывют тормоза и паузы в проигрывании).
Это всё понятно, но формально это нарушение принципа «одна вкладка — один процесс»и «проблемы в одной вкладке не помешают другим».
Видимо ничего не понятно, потому что никакое это не нарушение. Изоляция между процессами вкладок сохранена. Вкладка А не сможет получить\модифицировать данные внутри процесса вкладки Б. Ошибка в любом процессе не вызовет крах всех остальных процессов.
Крах одной вкладки может вызвать нескольких крах других.
Как? Ошибка возникает внутри потока, поток абортится, управление возвращается к родительскому потоку, процесс обслуживающий поток возвращается в пулл и становится доступен другим вкладкам. Сдается мне, вы слабо разбираетесь в мультипоточных приложениях, а все туда же, с выводами.
Да, слабо разбираюсь, но просто вижу, что крах одной вкладки вызывает крах «соседних». И даже во внутреннем таск менеджере Хрома невозможно убить одну вкладку, если их несколько в процессе.
При крэшах в рендерере убивается весь процесс. Не стоит продолжать работу, если процесс перешел в неопределенное состояние.
Как это не стоит. Это всего лишь процесс. Задача в процессе обработалась, возможно с ошибкой, возможно вернулся какой-то эксепшн. И что? Если эксепшн — пуллу теперь нельзя использовать тот-же процесс для других задач?
Я, кстати, немного напутал в терминологии. В абстракциях ЯП это не процесс-поток, а поток-задача. Т.е. пулл у нас потоков. Но это ничего не меняет.
Использование пулла потоков не нарушает концепцию. Может быть, конечно, в хроме есть баги на эту тему, но это уже совсем другая история.
Если это c++ эксепшн — то возможно, однако хром не использует исключений. Любые хардварные исключения означают ошибки в коде хрома, а потому после них нет никаких гарантий о правильности текущего состояния.
Не использует исключений? Ошибка рендеринга страницы — это хардварное исключение? Они там что, напрямую с драйвером видеокарты работают?
Обращение по невалидному указателю — хардварное исключение. При написании программ на C++ такое случается.
Обращение по невалидному указателю — явный баг в хроме. Разумеется, наличие какого-то бага может вывести концепцию из строя. Мы же тут обсуждаем то, что по мнению VolCh, сам факт наличия пулла (точнее, что одновременно запущенно меньшее количество процессов/тредов чем открыто вкладок) противоречит концепции одна вкладка = один процесс.
А какие другие проблемы могут быть со вкладками, кроме багов в хроме? Что вы понимаете под концепцией одна вкладка = один процесс, когда в процессе находится множество вкладок?
Я под этой концепцией понимаю:
1. Полную изоляцию конктекста вкладок друг от друга (на уровне памяти потока)
2. Невозможность намеренно/ненамеренно из одной вкладки кривым js или чем-то в этом роде убить/повесить другую вкладку
3. Возможность распределять ресурсы машины между вкладками независимо от контекста вкладок (какой нибудь IO Wait в одной вкладке не заставит ждать все остальные вкладки)

Кроме этого, может возникнуть самая что ни на есть проблема рендеринга (WebGL, неправильная обработка CSS или HTML5 объекта, кривой js опять-же). И если это не будет хардварной проблемой (тем же обращением по невалидному указателю), а какой нибудь безобидный out of bound index — концепция работает.
Если один из поток в процессе навернулся с далеко не нулевой вероятностью схлопнется весь процесс…
Боже, какие ужасы. Т.е. если я пишу многопоточное приложение, и у меня вывалиться ошибка в одном потоке — это полный крах и всему пуллу потоков, и всему моему приложению? Так что ли?
Или вы путаете потоки-процессы ОС ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F с тем, о чем я дальше там говорю, с абстракциями потоков-процессов в ЯП?
Нет, речь не о том — если эксепшн упал в основной поток и не удалось его обработать схлопывается весь процесс, обеспечиваемый основным потоком. Другие процессы не трогаются.
Да, верно. Но это уже совсем другая история… про необработанное исключение…
Так ведь валится-то аппликуха если сворачивается главный процесс, а он сворачивается из-за невозможности обработать какое-то исключение в подлежащем процессе. Разница в «многопроцессном» приложении (типа хрома) только в том, что все почти все исключения настроены так, чтобы не валить основной процесс… который ничем, кроме управления дочерними процессами и не занимается вроде (ну может ещё память данные хранит).
> Однако досадно, что разработчики не заботятся об экономичности стартовой конфигурации.

Наверное потому, что они заботятся о разнообразии и полезности стартовой конфигурации, а не наименьших системных требованиях. У большей части рынка ресурсов хватает, зачем тратить ресурсы на оптимизацию? Правильно там выше сказали, это бизнес, а не благотварительность добрых волшебников.

> Раньше я был убежден, что 8 Гб, восемь ядер и 64-битные системы нужны тем, кто занимается 3D-моделированием, перегонкой HD-видео или администрированием огромных потоков данных.

Мне этого не хватит, что бы открыть кучу вкладок в браузере, IDE, скайп, Lync, пару окошек консоли, пару окошек putty, пару RDP сессий, аутлук, тотал коммандер, энное количество корпоративного софта, еще и может виртуалочку. А вконтактике посидеть, да, вполне хватит. Это я к тому, что программистов как-то не упомянули в списке (пыхарями программисты не ограничиваются, да).
За что так к нам прнебрежительно? Вот прямо сейчас список открытых окон примерно соответствует вашему. Разве что RDP нет и аутлука, но два браузера, кое-какой софт от Oracle и Writer с ТЗ. Или ваша IDE жрёт на порядок больше чем моя (PhpStorm от JetBrains)?
Ну, в сети есть много приколов про джаву и то, сколько она жрет памяти.

Извините, был напуган, и излишне обобщил. Каюсь. Имелись ввиду конечно студенты\мелкие веб студии\фрилансеры\etc, которые годны максимум что сайт-визитку написать, и мнят себя крутыми девелоперами. А настоящие крутые девелоперы в состоянии себе обновить железо, и подобных проблем у них не встает.
Не понимаю… хоть убейте не понимаю зачем:
2. в любой момент нажать кнопку и поделиться в соцсетях,
ну кому нужны ваши очередные котики на стене? Отсутствие кнопки сильно поможет фильтрации контента — уже не будут абсолютно всё заливать.
3. оставить на странице только текст и фото,
у меня такой необходимости просто не возникало, насколько часто она возникает у вас?
4. выбрать нужный шрифт для элементов сайта (Ариал и Таймс приелись),
Идём в настройки браузера и не выпендриваемся.
5. одним кликом очистить кэш и/или историю браузера,
пять кликов, видимо, невыполнимая миссия?
7. проверять/выпрямлять странные ссылки
это как/что?
8. сделать скриншот любой страницы,
ctrl+p вам в руки, потрудитесь только настроить виртуальный принтер. или alt + print screen. Расширений, умеющих лучшем, чем две эти функции я не видел.
9. сохранить любой текстовый фрагмент в заметки.
а браузер тут при чём?

PS, да, браузер я запускаю почти при каждом пользовании ПК, но во-первых я с ним работаю (веб-дев), во-вторых в нём почта (yahoo), в-третьих в нём бегунок настройки скорости сети (yota, руки написать свою аппликуху не доходят). Ещё в повседневные его задачи входит хабр. Больше у меня браузеры ничем не занимаются.
у меня такой необходимости просто не возникало, насколько часто она возникает у вас?

Ежедневно возникала пока планшет не купил для чтения прежде всего.
Идём в настройки браузера и не выпендриваемся.

В каких браузерах можно перекрывать дизайнерские находки в обычных настройках?
проверять/выпрямлять странные ссылки
ru.wikipedia.org/wiki/%D0%AD%D0%BD%D0%B5%D1%80%D0%B3%D0%B8%D1%8F_(%D1%80%D0%B0%D0%BA%D0%B5%D1%82%D0%B0-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C)
у меня такой необходимости просто не возникало, насколько часто она возникает у вас?

Ежедневно возникала пока планшет не купил для чтения прежде всего.

Юзер-стиль с задачей справиться не может?

Идём в настройки браузера и не выпендриваемся.

В каких браузерах можно перекрывать дизайнерские находки в обычных настройках?

В статье было вообще-то «унылый arial» — т.е. дефолтовый шрифт для заданного семейства, но даже в вашем случае юзер-стиль может помочь…
Юзер-стиль с задачей справиться не может?

Не видел в настройках хрома возможности подключать юзер-стили. В ИЕ тоже. В файерфоксе вроде аддон надо ставить. Кажется только в опере было из коробки, и то не уверен, есть ли в 15-й.
В статье было вообще-то «унылый arial» — т.е. дефолтовый шрифт для заданного семейства

Это вы так решили. Ни разу не видели что-то вроде
h1 {font-family: arial, verdana, sans-serif;}
h2 {font-family: "Times New Roman", serif;}
? Обычные настройки браузера тут не спасут
Судя по ответам автора данного текста — таки правильно решил.
И да — таких кусков не видел… к счастью…
Ну да, я говорил именно об Arial. Tahoma, Trebuchet, Verdana, Microsoft Sans Serif, Calibri, Arial — все это часть одного семейства. Дело в том, что обычные настройки браузера позволяют лишь выбрать один шрифт из семейства и его кегль. И все. Страницы будут оформлены именно данным шрифтом, то есть возможность выбора как бы имеется, но она иллюзорна: выбрать разные шрифты из семейства не получится. Можно прописать в конфигурационном файле, чтобы заголовки оформлялись одним типом, текст — другим, боковые колонки — третьим. Но, имхо, это слишком хлопотно. И доступно, кажется, лишь авторам сайта.
В «Опере» 12 были user's CSS, есть в «Хроме», но урезанные — можно лишь задать в настройках кегль и гарнитуру из шрифтовых семейств (image). В любом случае, расширение Stylebot (для Файрфокса такого нет) дает право не только менять любой шрифт на произвольный, но и менять межстрочный интервал, а также прочие фрагменты оформления текста. С одной стороны, это перебор, с другой, повторюсь, иногда это полезно, если работа связана с активным серфингом по сайтам.
Вы правы: как правило, много сайтов верстаются «Ариалом» — как стандартом sans serif. Что касается «Таймса», то его маленькие кегли плохо отображаются в вебе, поэтому гораздо более широкие применение получила «Джорджия». Впрочем, сегодня все больше студий начинают использовать веб-шрифты. Их мало, но они есть, и это здорово.
У веб-шрифтов ещё и с поддержкой были какие-то проблемы некоторое время назад.
Лукавите, вы же на Хабре :) — body{font-family:Verdana, sans-serif;} Настройки браузера для sans-serif будут использоваться только если Verdana браузеру недоступен.
Не лукавлю, просто опускаю не очень существенные детали.

Вопрос-то по сути «или платим ресурсами, или ищем стандартные методы». В рамках этого вопроса эта деталь не существенна, т.к. идиотов, включающих TTF в стиль не очень много. В последнее время всё чаще используется технология web-шрифтов, что гуд, т.к. гарантирует наличие нужного шрифта.
пять кликов, видимо, невыполнимая миссия?

Видимо, когда занимаешься разработкой веб-приложений, то для тестирования каждого изменение раз в две минуты (предположим) приходится клацать 5 * (60 мин / 2 мин) = 150 раз в час. Не многовато ли? :) Лично у меня это нормальная ситуация. Конечно, не каждый день и не все дни напролет обновляешь страницу каждую минуту, но бывает ведь…
В расширении Click&Clean достаточно всего раз кликнуть мышкой. По-моему, это удобнее, нежели штатные функции, которые есть у браузеров.
Да, именно этим и пользуюсь, я просто привел пример сценария использования.
Видимо в этих случаях можно нажимать ctrl+F5 или cmd+shift+R, в зависимости от ОС. Рефрешит страницу не обращая внимания на кеш.
А вы сбрасываете кеш куков? Или просто хотите полной перезагрузки страницы? Если первое — тогда можно использовать «приватная вкладка» (открывается быстро, куков нет), если второе — то элементарным сочетанием клавиш легко перезагрузить (вам их уже подсказали).
Собственно, такой коммент был ожидаем :) У кого-то другие потребности, и кто-то не связан тесно с ИТ-индустрией, поэтому нуждается в универсальных и удобных вещах.

«4. выбрать нужный шрифт для элементов сайта (Ариал и Таймс приелись),
Идём в настройки браузера и не выпендриваемся.»

— на одной страничке хочу Вердану, на другой — Джорджию, на третьей — Люсиду. Плагины позволяют это, в то время как в настройках можно задать лишь выбор шрифта из подсемейства (Калибри, Вердана или Люсида будут на одно лицо в таком случае). Возможно, функция на любителя, но когда ежедневно по работе листаешь по сотне сайтов, которые оформлены куцым Ариалом, хочется, чтобы глаз изредка радовался :)

«7. проверять/выпрямлять странные ссылки
это как/что?»

— например, такие вот: ____.net/engine/go.php?url=aHR0cDovL3JhZGlvc2V0cy5ydXNmb2xkZXIubmV0L2ZpbGVzLzM3MTY0NDc5. Или же различные укорачиватели — bit.ly, tinyurl.com, vk.cc…

«8. сделать скриншот любой страницы,
ctrl+p вам в руки, потрудитесь только настроить виртуальный принтер. или alt + print screen. Расширений, умеющих лучшем, чем две эти функции я не видел.»

— привык к этому, и никакой виртуальный принтер настраивать не нужно

«9. сохранить любой текстовый фрагмент в заметки.
а браузер тут при чём?»

— в «Опере» 12 наличествовали заметки, к «Хрому» существуют тысячи расширений, включая знаменитый Evernote Web Clipper. Заметки хранятся на сервере, доступ к ним есть с любого устройства. В окне программы их можно систематизировать и каталогизировать, добавляя, скажем, теги. Удобно: сидишь на сайте, пришла в голову идея в связи с увиденным — закинуть ее в Evernote и вернуться к ней, уже включив планшет в самолете. а еще с помощью такого рода штук можно держать под рукой важные вещи, в т.ч. шаблоны, и не запускать при этом другую программу.
4. Ну это ваши заморочки — извольте платить памятью за них… мне приятней когда шрифты более-менее унифицированы.

8. Но приходится расплачиваться памятью — ваш выбор.

9. Опять же ваш кейс, ваш выбор и ваша плата за него.

Не стоит жаловаться, если сами сделали такой выбор…
8. сделать скриншот любой страницы,
ctrl+p вам в руки, потрудитесь только настроить виртуальный принтер. или alt + print screen. Расширений, умеющих лучшем, чем две эти функции я не видел.

Некоторые расширения могут сделать скриншот всей страницы, а не только видимой части. Впрочем, при печати печатается тоже вся страница, но может выглядеть по-другому.
Насчёт браузеров есть одна мысль: с развитием вычислений на стороне клиента, а не сервера, многие современные сайты превратились в полновесные программы, некоторые из которых значительно функциональнее подобных программ, написанных под десктоп десять лет назад.

Иначе говоря, дикий жор памяти браузером обусловлен:
1) Полной кроссплатформенностью кода, и это огромный плюс
2) Как уже сказали выше, из-за изоляции страниц друг от друга
3) Растущей интерактивностью на стороне клиента (раньше вы загружали статическую страницу, теперь у вас сайт-программа, работающая в реальном времени)
4) Сильным рывком в количестве информации на сайтах, особенно в последнее время, когда произошёл переход на сверхчёткие дисплеи и повысился размер картинок и видео

Плюс добавить к этому не всегда прямые руки разработчиков (как браузеров, так и сайтов), и станет понятно, почему FF со 150 вкладками отъедает 2,5 GB памяти.
Скажем так, многие сайты превратились в поставщиков максимально сжатых данных (типа json.gz или чанки html.gz) и собственно «дистрибутивов» «десктопной» «портативной» программы. По сути, с одной стороны возврат, к двузвенной арзитектуре (разве что БД стала очень умной), а сдругой десктопные к ней же стремтся хотя бы чтобы денег с пользователя снять синхронизировать данные между девайсами.
Sign up to leave a comment.

Articles