Подтвердить что ты не робот

Какой лучший выбор для вкладки браузера: многопоточный или многопроцессорный?

Интересно, какой лучший вариант для реализации вкладок в веб-браузере? (Например: Firefox использует многопоточность для своих вкладок, а Google Chrome использует многопроцессы...)

4b9b3361

Ответ 1

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

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

Ответ 2

Это зависит от ваших потребностей.

Если вы

  • Поиск ресурса с минимальным браузером
  • Не запускать тяжелые javascripts
  • Не имея большой памяти

Тогда вы, вероятно, собираетесь использовать многопоточность.

Однако, если вы

  • Запуск сразу нескольких страниц
  • Запуск ресурсоемких веб-приложений

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

Ответ 3

Что значит "лучший выбор"? Вы должны определить "лучше", прежде чем сможете обсудить, почему один лучше другого. Каковы ваши цели и каковы их относительные приоритеты? Что наиболее важно, стабильность, использование памяти, время процессора, количество используемых объектов ядра? Ответ, который вы хотите, потребует от вас сначала обеспечить эти приоритеты. То есть вам нужно определить, что "лучше", прежде чем мы сможем помочь вам решить, какой из них лучше.

Ответ 4

Ответ: Это компромисс.

Темы: в Windows обычно лучше всего, что бы ни было. Процессы являются ресурсоемкими реализациями этих систем.

Процессы: хороши, если безопасность/стабильность - главная проблема. Потому что один процесс, который идет вниз, гораздо менее вероятен, чтобы привести весь браузер вниз. (Но почему ожидается, что браузер будет терпеть крах?) И проще безопасно изолировать с помощью примитивов ОС , но при стоимости большего количества системных ресурсов (сколько зависит от ОС).

Гибридный: AKA с использованием процессов и потоков. Это лучший подход. Загрузка определенного количества компонентов с использованием потоков до тех пор, пока процесс не станет достаточно большим, чтобы оправдать дополнительные накладные расходы другого процесса (в зависимости от ОС), а затем создать другой процесс.

Ответ 5

Ну, я думаю, каждый раз, когда мы открываем новую вкладку, она создает поток, и он является benificial, поскольку поток не требует других ресоков и не будет использовать больше памяти, и ваша система spped больше не будет затронута.

Ответ 6

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