Me pregunto cuál es una mejor opción para implementar pestañas en un navegador web? (Ej: Firefox usa multi-threading para sus pestañas, mientras que Google Chrome usa multiprocesos ...)¿Cuál es la mejor opción para la pestaña del navegador: multihilo o proceso múltiple?
Respuesta
Depende de la calidad de su implementación y sus prioridades. Los subprocesos tienen el potencial de utilizar menos memoria/compartir más, y pueden tener un rendimiento mejor o peor que los procesos dependiendo de las primitivas de sincronización que utilice. Por otro lado, con la absoluta calidad de las implementaciones de navegador, ¿realmente quieres que todo el navegador y todas tus pestañas se cuelguen cuando un sitio incorrecto engaña al navegador para que asigne cantidades ilimitadas de memoria o algo peor?
Las implementaciones de navegadores multiproceso se parecen mucho al modelo de separación de privilegios en OpenSSH, vsftpd, etc. Está sacrificando algunos recursos para que el núcleo lo proteja contra errores en su código.
¿Qué quiere decir con 'qué es una mejor opción'? Debe definir "mejor" antes de poder analizar por qué uno es mejor que el otro. ¿Cuáles son sus objetivos y cuáles son sus prioridades relativas? ¿Cuál es la más importante, la estabilidad, el uso de memoria, el tiempo de CPU, el número de objetos kernel en uso? La respuesta que desee requerirá que proporcione estas prioridades primero. Es decir, debe definir qué es "mejor" antes de que podamos ayudarlo a decidir cuál es mejor.
Depende de cuáles sean sus necesidades.
Si está
- Buscando un recurso mínimo navegador
- No está en ejecución javascript pesados
- No tener una gran cantidad de memoria
Entonces usted está probablemente va a ir con múltiples enhebrado.
Sin embargo, si usted es
- Ejecución de muchas páginas a la vez
- Ejecución de aplicaciones web de recursos intensivos
Probablemente va a querer multi-proceso. Dado que la mayoría de las computadoras y aplicaciones web se ajustan hoy a la segunda categoría, Multi-Process es, hoy en día, la mejor opción. Esto se debe a que los procesos le permiten separar cada pestaña en su propio entorno limitado. Eso significa que si una pestaña falla, no perderá las otras pestañas.
Respuesta: Es una compensación.
Encabezados: en Windows son generalmente mejores no importa qué. Los procesos son implementaciones hambrientas de recursos en esos sistemas.
Procesos: son buenos si la seguridad/estabilidad es una de las principales preocupaciones. Debido a que un proceso que baja es mucho menos probable que derribe todo el navegador. (¿Pero por qué se espera que el navegador se bloquee?) Y es más fácil aislar de forma segura utilizando primitivas del sistema operativo, pero a un costo de más recursos del sistema (cuánto depende del sistema operativo).
Híbrido: AKA Uso de procesos y subprocesos. Este es el mejor enfoque. Cargar una cierta cantidad de componentes, utilizando subprocesos hasta que el proceso sea lo suficientemente grande como para justificar la sobrecarga adicional de otro proceso (según el sistema operativo) y luego crear otro proceso.
Entonces, ¿qué navegadores usan subprocesos en este momento? – CMCDragonkai
bien todos em ... y en breve también todos usan procesos múltiples, convirtiéndose en híbridos. por ejemplo, cada pestaña de Chrome se ejecuta en un proceso separado, que consta de alrededor de 11-15 hilos ... – bernstein
Bueno, creo que cada vez que abrimos una nueva pestaña, crea un hilo, y es benificial ya que el hilo no requerirá otros resoces y no usará más memoria y su sistema no se verá más afectado.
Creo que un proceso múltiple es una mejor opción. En multi-hilo hay problemas de seguridad, y no queremos que nadie robe nuestro número de tarjeta de crédito. Si un proceso se vuelve lento, debido a que todo el navegador se bloquee, no tiene sentido. Si nuestro navegador es muy específico para determinadas aplicaciones, como investigación, que solo trata de un subconjunto de Internet, podemos analizar los pros y los contras del proceso y del navegador basado en hilos. Un navegador multiproceso seguro sería rápido y fácil de sincronizar.
- 1. ¿Cuál es la mejor opción?
- 2. comunicación entre la pestaña del navegador
- 3. ¿Cuál es la mejor opción para la comunicación entre procesos de .NET?
- 4. ¿Cuál es la mejor opción para usar: localStorage(), window.localStorage() o document.localStorage()?
- 5. Detectar navegador o pestaña cerrando
- 6. LINQ to MySQL: ¿cuál es la mejor opción?
- 7. ¿Cuál es la mejor manera de adaptar este sistema de seguridad para tratar la herencia múltiple?
- 8. ¿Cuál es el mejor control de navegador web para usar en la aplicación Windows Form?
- 9. xml, html o xhtml en <xsl:output>: ¿Cuál es la mejor opción?
- 10. cuál es la mejor API del cliente HBase para java
- 11. ¿Cuál es la mejor biblioteca del navegador del lado del cliente para cargar múltiples archivos a través de http?
- 12. ¿Cuál es el proceso completo desde la introducción de una URL a la barra de direcciones del navegador para obtener la página representada en el navegador?
- 13. Constructor o propiedades: cuál es la mejor opción al asignar valores
- 14. ¿Alguna forma de identificar la pestaña del navegador en JavaScript?
- 15. Opción múltiple en WinForms
- 16. ¿Cuál es la mejor opción para construir un sistema de complemento para una aplicación Moose?
- 17. Hacer que la pestaña del navegador muestre una notificación
- 18. PHP, ¿cuál es la mejor opción para eliminar una cadena conocida?
- 19. ¿Determina si la pestaña del navegador está activa? - IE?
- 20. Delphi versus C++ Builder - Cuál es la mejor opción para un programador de Java Hacer Win32
- 21. ¿Cuál es la mejor opción para indexar un valor booleano en lucene?
- 22. Cuál es mejor: mysql_connect o mysql_pconnect
- 23. Confirmación antes del cierre de la pestaña/navegador
- 24. ¿Cuál es la mejor manera de abrir una nueva ventana del navegador?
- 25. ¿Cuál es el mejor enfoque para la orientación geográfica?
- 26. es bueno() usado para cambiar la prioridad del hilo o la prioridad del proceso?
- 27. Aplicación universal (tableta y teléfono): ¿cuál es la mejor estructura para el diseño múltiple xml o mostrar/ocultar widgets?
- 28. Imagen de conjunto de HTML en la pestaña del navegador
- 29. ¿Cuál es la mejor alternativa para la serialización de Java?
- 30. ¿Cuál es la mejor opción para buscar en Ruby on Rails?
Es posible que desee que la pregunta parezca menos subjetiva. Cuáles son las ventajas y desventajas de la separación de pestañas de hilos/procesos en los navegadores, y quizás no mencionarlas por su nombre ... –
Tenga en cuenta que Firefox está en proceso de [implementación] (https://wiki.mozilla.org/Electrolysis) esta. –
@ Matthew Flaschen: Gracias Matthew, esto es lo que estoy buscando. Parece que Chrome está adelantando a Firefox en el uso general por su estabilidad y otras cosas .... – root