Давно пора ругаться с интернет-провайдйером. Но и locslhost начал тормозить. В строке сообщений браузера выскочило "ожидание доступного сокета"... Решил, что настал благоприятный момент для сбора компромата на Chrome... Он и Comodo перелопачивают гигабайты данных на винчестере. Не иначе... шпионят...
Перед статьей собрано с десяток ссылок, в часности, рекомендуют отключить проверку на вирусы..., node.js сделана на движке js chrome... много полезных ссылок... А в статье подробно описывается процессы (пред)загрузки html-страницы... главный вывод - надо изучать node.js
Высокая производительность Google Chrome
Высокопроизводительный сетевой стек Chrome
четыре способа увеличить скорость выполнения ваших сетевых приложений под Linux
googlebooks chrome
Проект HTTP Archive сохраняет историю эволюции веб
HTTP Archive trends
chrome://chrome-urls List of Chrome URLs
Disable the "Enable phishing and malware protection"
Why is Chrome freezing?
Из "Высокая производительность Google Chrome"¶
С разделением процессов, исполнение веб-приложения главным образом включает три задачи: получить все нужные ресурсы, построить структуру страницы и отобразить ее, выполнить JS. Процессы построения страницы и выполнения JS следуют однопоточной, чередующей схеме, поскольку невозможно выполнить одновременное построение и модификацию одного и того же дерева страницы (DOM). Эта особенность объясняется тем фактом что JS сам по себе — однопоточный язык. Следовательно, оптимизация совместного построения страницы и исполнения скриптов в реальном времени является очень важной задачей, как для разработчиков веб-приложений, так и для разработчиков самого браузера.
Для отображения страниц Chrome использует WebKit, быстрый, открытый (Open Source) и совместимый со стандартами движок. Для выполнения JS Chrome использует собственный, очень хорошо оптимизированный V8 Javascript движок, который, кстати, является Open Source проектом, и нашел свое применение в множестве других популярных проектов — к примеру, в node.js.
Средняя страница, с выборки среди первых 300 000 сайтов интернета, имеет такие характеристики (на январь 2013):
«Вес» — 1280 КB
Состоит из 88 ресурсов (картинки, css, js)
Использует данные более чем из 30 сторонних сайтов.
«Вес» — 1280 КB
Состоит из 88 ресурсов (картинки, css, js)
Использует данные более чем из 30 сторонних сайтов.
Давайте посмотрим на это более детально. Свыше 1MB веса в среднем, состоит из 88 ресурсов, и собирается из 30 различных собственных и сторонних серверов. Заметим, что каждый из этих показателей неуклонно растет в течении нескольких последних лет, и нет повода прогнозировать, что этот рост остановится. Мы в все большем количестве строим все более громоздкие и требовательные веб-приложения, и этому не видно конца.
Получив URL ресурса в интернете, браузер начинает проверку, не локальный ли он, и имеются ли сохраненные данные в кэше. Если вы перед этим уже получали данные с этого ресурса, и соответствующие заголовки браузера были установлены (Expires, Cache-Controle, ...) то есть возможность получить все данные из кэша — быстрейший запрос — это тот запрос, который не был сделан. В другом случае, если мы проверили ресурс и кэш «протух» или мы еще не посещали сайт, приходит очередь сделать дорогостоящий сетевой запрос.
Имея адресу сайта и путь к запрашиваемому ресурсу, Chrome сначала проверяет, имеются ли открытые соединения на этот сайт, которые можно использовать снова — сокеты, объединены в группы по {scheme, host, port}. В случае, если вы выходите в интернет через прокси, или установили у себя proxy auto-config (PAC) скрипт, Chrome проверяет наличие нужного соединение через соответствующий прокси. PAC скрипт позволяет задать несколько прокси, базируясь на URL или других правилах настройки конфигурации, и каждый из них может иметь свой собственный набор соединений. И наконец, если ничто из вышеуказанных условий не подошло, пришел черед получения IP адреса для нужного нам адреса — DNS Lookup.
Если нам повезло, и адрес находится в кэше, ответ наверняка обойдется нам в один быстрый системный запрос. Если нет, то первым делом нужно выполнить запрос к DNS серверу. Время, которое потребуется для его выполнения, зависит от вашего интернет провайдера, популярности запрашиваемого сайта и вероятности, что имя сайта находится в промежуточном кэше, плюс время ответа сервера DNS на данный запрос. Другими словами, здесь много неопределенности, но время в несколько сот миллисекунд, которое понадобится на запрос до DNS, не будет чем-то из ряда вон выходящим.
Получив IP, Chrome может устанавливать новое TCP соединение к удаленному серверу, а это значит, что мы должны выполнить так называемое three-way handshake (трехкратное приветствие): SYN > SYN-ACK > ACK. Этот обмен приветствиями добавляет задержку на запрос-ответ для каждого нового TCP соединения — без исключений. В зависимости от расстояния между клиентом и сервером, учитывая выбор пути маршрутизации, это может отнять в нас несколько сот и даже тысяч миллисекунд. Заметим, что вся эта робота выполняется перед тем, как даже один байт данных веб-приложения будет передан!
Посты чуть ниже также могут вас заинтересовать
В комментарии к
ОтветитьУдалить"Пытался понять почему антивирус такой прожорливый? Додумался, как настроить Google Chrome..."
http://pythonr.blogspot.com/2014/07/google-chrome_8.html
добавил ссылки о структуре кэша
Эту задачку ярешил кардинально - работаю в Linux, здесь все летает...
ОтветитьУдалитьА компьютеры с Windows пару раз просканирвал на вирусы - вирусы (естественно) нашлись
(нет такого касперского, который бы за 6 месяцев не прозевал бы парочку троянов),
но улучшения ситуации не наступило...
Так что на днях, я нашел хорошие описания процессов кэширования:
Продолжаем разбираться с прожорливым кэшем Chromium -> disk_cache.h -> WebKit -> MemoryCache class
http://pythonr.blogspot.ru/2015/04/chromium-diskcacheh-webkit-memorycache.html
будем укладыват в голову объектные модели и смотреть сырцы.
Вот только делать это некогда...
Пока можно попробовать одну универсальнуюстратегию:
для веб-серфинга можно использовать режим ИНКОГНИТО
- здесь не создаеятся дисковый кэш
т.е., на диск не должно ничего записываться
В тексте поста я напсал "надо изучать node.js"
УдалитьТеперь уточняю "надо изучать webkit"
Жаль, что получается урывками...