Нужна ли многопоточность процессора для браузера

Обновлено: 07.07.2024

Для современного браузера многопроцессность — это хороший тон. Все браузеры обладают вкладками, а каждая из вкладок в многопоточном режиме является отдельным изолированным процессом. Достоинства такого подхода — не только в дополнительных мерах безопасности и исключении ряда атак. В отдельные процессы можно уводить вкладки, дополнения и расширения, к примеру, блокировщик рекламы. Если один из процессов завершится с ошибкой, работу можно продолжить без перезапуска всего браузера. Исключаются разнообразные утечки памяти, растёт производительность за счёт распараллеливания задач нескольким ядрам процессора. Если одна из вкладок потребляет много ресурсов, интерфейс не повиснет, он сохранит отзывчивость.

Многопроцессностью обладают почти все популярные браузеры: Google Chrome, Internet Explorer, Microsoft Edge, Apple Safari. Mozilla Firefox догоняет их. Electrolysis или e10s — это технология многопоточного режима в Firefox. В первых версиях процессов два: один для браузерных вкладок, второй для интерфейса. В следующих версиях процессов на контент будет несколько.

Многопроцессность можно включить самостоятельного. Чтобы убедиться, какая версия попалась, достаточно набрать в адресной строке about:support и поискать строчку Multiprocess Windows.


Не все расширения совместимы с Electrolysis. Можно посмотреть списки самых популярных дополнений на сайте Are We e10s Yet, где указан их статус совместимости в режиме многопоточного Firefox. Можно сразу включить Electrolysis и выключить его позже, если важные дополнения ломаются.

Нужный параметр в about:config (ввести в адресную строку и нажать «Ввод») — browser.tabs.remote.autostart . Значение параметра нужно установить на true двойным щелчком.


После перезапуска браузера Electrolysis может заработать. В некоторых случаях его включению будет мешать какое-то дополнение.


Чтобы обойти это ограничение, создайте в about:config новую булеву постоянную browser.tabs.remote.force-enable и присвойте ей значение true .


Теперь Electrolysis заработает в принудительном режиме многопроцессности. Обратите внимание, что подобное может отразиться на производительности некоторых дополнений. В about:support напротив Multiprocess Windows появится 1/1 (Enabled by user).


Electrolysis можно включить или отключить через about:config . А вот способа отключить обязательность подписи устанавливаемого расширения больше нет. Опция исчезла, как и было задумано.

Год назад появился первый план ввода обязательных подписей. Изначально предполагалось, что 40-я версия начнёт предупреждать об отсутствии подписи, в 41-й обязательность будет отключаемой, а с 42-й возможность установить расширения без подписи пропадёт. В скорректированной версии сроки неотключаемости сдвинули до 44-й версии. Позднее сроки сдвигались до 46-й версии.


В Firefox 49 исчезла поддержка Android 2.3 (Gingerbread), версий OS X 10.6 (Snow Leopard), 10.7 (Lion) и 10.8 (Mountain Lion). Эти операционные системы вышли 4—6 лет назад.

Улучшения безопасности при скачивании файлов содержат расширенную защиту. Теперь при попытке скачивания тех программ, которые производят непредвиденные изменения на компьютере, Firefox выдаст предупреждение. Принципы фильтрации объяснены в гугловской Unwanted Software Policy. Бразуер научился предупреждать, что загрузка необычна. К примеру, при скачивании VLC из стороннего, неофициального источника высока вероятность натолкнуться на зловред, который ещё не фильтруется Google Safe Browsing. В этом случае браузер выдаст предупреждение, что файл скачан из необычного источника.


Слева: предупреждение о потенциально нежелательной загрузке. Справа: предупреждение о скачивании зловредного файла.

API WebExtensions считается стабильным. Для пользователя это означает, что в Firefox можно устанавливать расширения Chrome. Сделать это можно с помощью расширения Chrome Store Foxified. Для работы может потребоваться подписывать дополнения на AMO, то есть будет нужен аккаунт на сайте.

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


Изменён вид about:addons , упрощёны рекомендации дополнений. Теперь их можно установить в один клик.


Firefox Hello — это инструмент для сотрудничества и общения в формате аудио- и видеочата, созданный на технологии WebRTC. Сервис встроен в Firefox с 34-й версии. В 49-й версии Hello может исчезнуть. На баг-трекере обсуждается удаление Hello из браузера уже в следующей версии. Причина удаления — смена приоритетов разработки. В ночной сборке Nightly 51 и ранней версии Aurora 50 сервис Hello уже исчез. На момент написания поста Beta 49 пока не опубликована.

Ранее из Firefox удалили темы оформления и группы вкладок из-за малоиспользуемости. Поддержка малопопулярных функций замедляла выпуск новых версий. Возможно, Hello хотят «убить» по той же причине.

Firefox продолжит избавляться от поддержки старых систем. В 49-й версии набор инструкций центрального процессора SSE2 будет обязательным для работы Firefox под Windows. Речь идёт об отказе от процессоров до эпохи Pentium 4 и Athlon 64.
Фотография самки малой панды Кинта в зоопарке Ногеяма, CC-BY 2.0.

Ни для кого не секрет, что старые компьютеры в состоянии эффективно работать только с Windows 7, но не более новыми ОС. В то же время они достаточно быстро работали с различными браузерами еще 3-4 года назад, но сильно тормозят с современными версиями тех же браузеров. Почему так происходит? Ответ в этой статье.

Особенности старых компьютеров

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

Ядра и наборы команд

Одноядерные процессоры не заточены под многопоточность, это означает, что они не могут выполнять множество процессов эффективно и параллельно. Наличие виртуальных ядер типа Hyper-Threading не равносильно наличию двух ядер — все равно поочередно используются ресурсы одного и того же ядра, просто чуть в более оптимизированном порядке. Это приводит к проблемам, когда запущено много приложений, а разные приложения еще и создают несколько потоков. Особенно это хорошо заметно на процессорах Intel Atom и аналогичных.

Наборы команд Intel SSE4.1, Intel SSE4.2, Intel AVX2 также очень важны для увеличения производительности, особенно при работе с мультимедиа. Эти команды, поддержка которых реализована аппаратно, позволяют выполнять различные операции с плавающей запятой быстрее, задействуя меньше ресурсов процессора. Однако, эти команды не используются в коде работы браузера.

Также относительно недавно появилась поддержка технологии Intel TSX-NI. Она появилась в процессорах Intel Core 4-го поколения (2014 г.) и подразумевает под собой надстройку над си стемой работы с кэшем процессора, оптимизирующую среду исполнения многопоточных приложений, но, конечно, только в том случае, если эти приложения используют программные интерфейсы TSX-NI. Соответственно, приложения, чей код написан с учетом этого набора команд, будут работать значительно быстрее.

TSX работает поверх механизма кешей. У cache line появляется дополнительный бит — что этот cache line в данный момент используется транзакцией. Поток начинает транзакцию специальной инструкцией. После этого и до комита транзакции все операции, работающие с памятью, помечают соответствующий cache line как участвующий в транзакции. А если соответствующий cache line уже занят другой транзакцией, то процессор делает переход по специальному адресу, который задаётся в начале транзакции.

Процессоры Intel новых поколений поддерживают Intel Speed Shift Technology. Эта технология использует контролируемые состоянии энергопотребления процессора (P-states) и позволяет динамически частотой ядра, напряжением питания и энергопотребления. Это очень серьезно влияет на производительность однопоточных и кратковременных задач, таких как поток, созданный закладкой браузера. Эта функция появилась в 2015 году и доступна только на процессорах с архитектурой Skylake и более новых.

Кэш и память

Любая программа при запуске занимает какое-то пространство в оперативной памяти, а при исполнении её кода, процессор часть данных берет из оперативной памяти, а части располагает у себя в кэше для более быстрого доступа. Упрощенно говоря, туда попадают части кода (инструкции процессора), которые чаще всего используются программой. Более сложен алгоритм размещения данных в кэше. Если процессор нашел необходимые данные и инструкции в кэше, то говорят о «попадании в кэш». Это очень хорошо для производительности, ведь доступ к кэшу CPU в десятки раз быстрее, чем к оперативной памяти. Собственно, алгоритмы работы с кэшем в разных поколениях процессоров постоянно совершенствуются, потому может быть значительная разница в производительности (скажем, до 50% между 4 и 8 поколениями Intel Core при работе браузера).

Увеличение объема самого кэша позволило компилировать код программ таким образом, чтобы больше данных попадало в кэш.

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

Особенности современных браузеров

По мере увеличения производительности компьютеров, браузеры стали делать все более требовательными к ресурсам системы, внедряя все новых функционал. Они максимально используют возможности новых CPU. Теперь, каждая закладка браузера — это отдельных процесс в памяти компьютера, и между ними процессор вынужден часто переключаться. Это хорошо с точки зрения того, что одна закладка при зависании не приводит к зависанию других, но более расточительно с точки зрения ресурсов. Кроме того, каждый плагин браузера также потребляет ресурсы памяти и процессора.

Например, 25 открытых закладок в браузере Google Chrome потребуют 1.5-1.8 Гбайт оперативной памяти и 5-10% процессорного времени процессоров последних поколений в простое, 20-50% процессорного времени более старых поколений процессоров и до 100% при нагрузке. Internet Explorer при такой загрузке просто зависает, так как в его архитектуре каждая закладка не является отдельным процессом.

Важная особенность в том, что если на одной из открытых закладок есть открытое видео или flash объекты сайта, то такая закладка будет потреблять больше ресурсов и может даже подвесить браузер целиком, потому что процессор будет испытывать трудности при переключении между процессами.

Именно поэтому при запуске браузера на старых компьютерах с сохраненными вкладками, запуск происходит по 10-30 секунд.

Как увеличить производительность старых компьютеров

Здесь имеется два направления, в которых необходимо двигаться: увеличение производительности самого компьютера и настройка браузера.

Чтобы увеличить производительность вашего компьютера без замены материнской платы сделайте следующее:

  1. Установите CPU c максимальным числом ядер и потоков для вашего сокета платы, а также с максимальным кэшем
  2. Установите не менее 2 Гбайт оперативной памяти для комфортной работы
  3. Установите модули памяти в двухканальном симметрично режиме (одинаковые по частоте и слоты разных каналов)
  4. Установите модули памяти максимальной частоты, которая позволяет ваша шина памяти
  5. Убедитесь, что на жестком диске не менее 5 Гбайт свободного места, чем больше — тем лучше.
  6. Удалите временные файлы с диска (они хранятся в разных папках — используйте CCleaner) и после выполните дефрагментацию диска.
  7. Если есть возможность — замените HDD на SDD — очень выиграете во времени запуска браузеров.

С точки зрения самих браузеров можно сделать следующее:

  1. Почистите кэш браузеров (Ctrl+Shift+Del) и настройте браузер чистить кэш регулярно
  2. Не оставляйте открытые закладки, закрывая браузер. Настройте браузер на запуск с чистой страницы. Любимые закладки добавьте в избранные, они будут у вас в быстром доступе.
  3. Удалите все расширения браузера, которая вам не нужны, а та, что не используете сейчас — отключите.
  4. Удалите вспомогательные поисковые панели браузера, в том числе от Яндекс.

Самые быстрые браузеры

Скорость работы всех браузеров разная. На данный момент самыми быстрыми браузерами являются Opera и Mozilla Firefox. Google Chrome в последних версиях стал гораздо «тяжелее», а Firefox — наоборот. Меньше всего в памяти занимает Opera (разница достигает сотен мегабайт).

Если вам все это не помогло, или у вас совсем старый и слабый компьютер (до появления Intel Core), то вам придется использовать использовать специальные прощенные альтернативные браузеры:

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

Зачем процессору несколько ядер?

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

Вот поэтому процессор – это мозговой центр каждого компьютера, отвечающий за его вычислительные способности и скорость работы.

Первые процессоры были едиными устройствами, которые принимали команды и выполняли их в строгой очередности. Одно ядро позволяло выбирать процессор при покупке только по показателям частоты. А недостаток производительности на первых порах компенсировали созданием двух- и многопроцессорных конфигураций. В таких сборках команды пользователя на ввод обрабатывал первый процессор, а остальные операции по возможности равномерно распределялись между остальными. Для сборки таких систем использовались двухпроцессорные платы или конфигурации на несколько сокетов.

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

Позже корпорация Intel в линейке процессоров Pentium внедрила техническую возможность выполнения одним ядром двух команд за такт, что стало началом новой эпохи в компьютерных технологиях – гиперпоточности процессоров. А сейчас специалисты компании активно работают над новой технологией реализации четырех потоков на одном ядре, и уже в ближайшее время подобные процессоры будут представлены публике.

Чем отличаются ядра и потоки

Ядро – это самостоятельный вычислительный блок в архитектуре процессора, способный выполнять линейную последовательность задач за определенный период времени. Если нагрузить одно ядро несколькими последовательностями задач, то оно будет попеременно переключаться между ними, обрабатывая по одной задаче из каждого потока. В масштабах системы это приводит к замедлению работы программ и сервисов.

Поток – это программно выделенная область в физическом ядре процессора. Такая виртуальная реализация позволяет разделять ресурсы ядра и работать параллельно с двумя разными последовательностями команд. Таким образом операционная система воспринимает поток, как отдельный вычислительный центр, следовательно, ресурс ядра используется более рационально, и скорость вычислений увеличивается.

Стоит ли ожидать удвоения производительности?

Виртуальное разделение вычислительной мощности процессора на потоки называется гиперпоточностью. На практике это не физическое увеличение количества ядер, следовательно, и вычислительный потенциал процессора остается постоянным.

Гиперпоточность – это инструмент, позволяющий процессору более оперативно выполнять команды операционной системы и распределять вычислительный ресурс.

Таким образом, удвоенное количество потоков по отношению к ядрам способно повысить эффективность процессора за счет одновременного выполнения нескольких задач каждым ядром. Но прирост, даже по заверениям лидера рынка в производстве процессоров Intel будет находиться в пределах 30%.

А вот об увеличении энергопотребления и чрезмерном нагреве волноваться не стоит. Так как виртуальное разделение выполнено на производстве, то компанией просчитаны все рабочие параметры, такие как мощность и TDP, указанные в спецификации.

Что выбирать: ядра или потоки?

Поскольку ядра – это физические «мозговые центры», занимающиеся вычислениями, то за общую производительность центрального процессора отвечают именно они. Поэтому количеством ядер, ну и еще частотой процессора определяется его производительность.

Но и количество потоков также заслуживает внимания. Разберем на примере:

Двухъядерный процессор с двумя потокам нагружается операционной системой четырьмя параллельными последовательностями команд, например, от открытых игр и программ. Команды так и останутся в четырех «очередях», и ядра будут попеременно производить вычисления из каждой. При этом производительность ядра зачастую избыточна для обработки одной команды. Поэтому часть вычислительного потенциала ядра, а значит и процессора останется в резерве.

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

На практике это дает нам возможность одновременно запускать несколько программ: работать с документами, слушать музыку, общаться в мессенджерах и выполнять поиск в браузере. При этом программы будут работать эффективно, быстро, без торможений и зависаний.

В производственных масштабах для комплектации рабочих станций или серверов также следует отдать предпочтение большему количеству потоков при равных числах ядер. За исключением особых случаев, таких как работа с 1С, когда решающую роль играет тактовая частота, и ряда других приложений, активно использующих TCP/IP стек. В этих случаях распараллеливание вызывает существенную задержку при обработке пакетов .

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

В заключении интересное видео от компании Intel о том, как они создают микрочипы.


Запустить число потоков соответствующее количеству ядер процессора
Требуется определить колл ядер процессора и запустить соответствующее колл ядрам число потоков.

Имеет ли смысл создавать больше потоков, чем ядер в процессоре?
Всем привет! Такой вопрос, имеет ли смысл создавать больше потоков, чем ядер в процессоре? if.


Сколько ядер в компьютере?
Купил ноута Lenovo G500G, написано в описании что двухъядерный комп, гляжу в производительность не.


Сколько ядер на процесоре
Как это програмно можно узнать количество ядер/процесоров на устройстве? Пытаюсь разеделить.

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

Решение

CahesCinnober, у меня на кор2Дуо работает. На 2-х ядрах.
Памяти - гига 4, ссд не помешает. Это не ответ - я так и не получил информации об распараллеливании потоков оффисных задач. Где та граница - при которой двух гигагерцовый двхядерник (аналогично - многоядерник) становится круче четырёхгигагерцового одноядерника?

CahesCinnober, Можете считать, что одноядерники уже неактуальны, хоть на 100Ггц. Просто в силу своей архитектуры. Не потому что одноядерники, а потому, что не поддерживают новые инструкции, без которых у меня, например, на семпроне Опера не обновляется.

А вот 2-х ядер для офиса пока хватает.

Лично из своего опыта скажу что 2 ядерного проца с 4 гб оперативы не хватает, чтобы работать в вордике и скролить инет. Для меня удобно 4 ядра - 4 потока +4 (можно 6) оперативки.

Это я понимаю, я, естественно ориентируюсь на данные из общего описания на уровень "SSE4.2".

2 ядерного проца с 4 гб оперативы не хватает. удобно 4 ядра

Ага!, - значит количество ядер на что-то влияет!
Это не вопрос.

Хотя - может вы под сёрфигном в интернете предполагаете просмотр видео HD4K в ютубе.

может вы под сёрфигном в интернете предполагаете просмотр видео HD4K в ютубе. И видео, и гугл доки и флеш приложения, и сайты со встроенной флеш анимацией. Из опыта посещения нормальных банков и работы с документами, то с головой хватит 2-х ядерного процессора с частотой 2 ГГц. Тут и Атлоны встречаются, и всякие там ранние Intel Core Due, а может в самых современных гиперпни. Встроенная графика или самые простенькие дискретки. Хотя в последнем офисе, где приходилось работать стоял I3-8100.

как они вам помогут в офисных задачах?

два всегда лучше чем один а четыре лучше чем два. с таким подходом вы не ответите себе же на все вопросы. нужно смотреть не на то, сколько в принципе у вас есть программ, а сколько программ одновременно вы запускаете и активно используете, например для торрента вам нужен хороший жесткий диск, цпу тут вторичен. Количество оперативной памяти влияет на то, опять же сколько сразу задач вы можете решать без просадки производительности. сейчас 4 гб точно хватит для офиса, желательно ssd на систему, ну и hdd на торренты. своп файл оставляйте на ssd. два ядра хватает для двух задач (активных), например открыт эксель и вы запускаете видео с ютуба, смотрите например стрим. Главное настройте аппаратное ускорение в браузере.
так что начиная с Core2 E7500 можно смело ставить в офис. Приятным и комфортным будет гиперпень с формулой 2/4 или старенький i5 с 4 ядрами. Например недорого можно ставить H61+Ci5-2400+4Gb - очень недорого и производительно. Знакомый недавно заказывал с КУ компы для офиса. Работа: Excel - Word - пара не сложных программок - и браузер с большим колл. вкладок. Так вот, много вариантов было предложено, но решили что для комфорта идеально подойдёт 2400g - 8gb оперы(это минимум на сегодня, браузеры сжирают просто немерено её) и ссд на 250 гб. Просто особо не вижу смысла в покупке заведомо мусорного железа которое будет тратить нервы работников и требовать ежедневных танцев с бубном. Как пример, таблица в EXCEL эдак на 100к строк мучительно больно и долго открывается на i3 2я-4п. Без точного ТЗ указать вилку минимум-максимум просто невозможно.

То-есть - статистика мне не нужна, нужно обоснование - поможет-ли, например, браузеру многоядерность? Или рабочий интерфейс других прог - графических редакторов, например (или многоядерность влияет только на плугины).

Может быть в навороченных диспетчерах процессов как-то это показывается.

Добавлено через 47 минут
Если уж очень конкретно - передомной стоит вопрос об видеоредакторе - рабочий интерфейс всяких адобов основывается на многоядерности, или, если не обращать внимания на рендеринг - можно взять процессор с большей частотой, но меньшими ядрами, или вообще не заморачиваться - взять шестиядерный Райзен за пять тысячь а на остальное памяти докупить.

Система - 7-ка.
Фотошоп - кс2.
Ворд - 16-й.
Проц - кор2Дуо е8500.

Распределение нагрузки в ворде и фотошопе - вы видите.

Мне кажется, фотошоп, как и остальные адобовские поделки, вообще, считает слово "многопоток" - ругательством.
А ворд - ничего так, нормально вроде.

Читайте также: