Grandes patrañas sobre Google Chrome y el uso de procesos en pestañas

Desde ayer sigo viendo alaban a Google Chrome desde puntos de vista que me parecen dudosamente críticos y simplemente alaban lo que ven sin saber lo que dicen.

Me estoy refiriendo obviamente al asunto de que Chrome ejecute un proceso por cada pestaña. Se dice de ello desde que no es un error y resulta más rápido hasta que una funcionalidad para que el navegador ejecute aplicaciones web. Y a mí todo esto me parece una sarta de gilipolleces sin sentido.

Una de las características más destacadas de Google Chrome es que cada una de las pestañas se ejecuta en su propio proceso, de forma que el comportamiento de una no afecte al resto. De hecho, probándolo una de las pestañas se ha cerrado, probablemente por un cuelgue de algún elemento, pero el resto del navegador ni se ha inmutado.

- Genbeta.

Esto es absolutamente innecesario. Cada pestaña podría ejecutarse en un hilo independiente y tampoco afectaría al resto del programa.

Porque Google Chrome es el primer navegador diseñado para aplicaciones web, no sólo con la idea de “páginas web”. Gestiona pestañas como procesos, cada una tiene su espacio de memoria independiente, el foco estará en el rendimiento del motor de Javascript y viene con Gears integrado.

- Error 500.

No negare que la idea de que Chrome ejecute “aplicaciones” y por tanto necesite un proceso por cada una de ellas sea válida y resuelva ciertos problemas, pero me temo que asociar cada web con aplicación es un error. Podria atender a una pestaña con un proceso solo cuando de verdad fuera a ejecutar una “aplicación” y evitar hacerlo cuando simplemente renderiza una web normal.

La suma final que podéis ver en el caso de Chrome se debe a que Google ha apostado porque cada pestaña constituya un proceso independiente del resto, lo que facilita que se libere toda la memoria que está utilizando la misma en caso de que la cerremos. La idea, vistos los resultados iniciales, se antoja de lo más interesante.

- Abadía Digital.

De esto, en serio, no sé si reírme o llorar. ¿En Abadía Digital han abierto veinte pestañas simultáneamente? La cantidad de memoria consumida se dispara muy por encima de la de Firefox 3 y hasta de Firefox 2 en sus peores tiempos.

Parece que en Google no se han equivocado al apostar por que cada pestaña sea un proceso independiente del resto.

- Bitelia.

Obviamente si es un equívoco. Cada proceso provoca un consumo de memoria y CPU de lo más innecesario. Y me abstengo de entrar en cuestiones tecnicas aburridas sobre procesos, transiciones, y CPUs.

La decisión de usar procesos para pestañas solo puede deberse o bien a un estadio temprano en el desarrollo del navegador o a un nefasto diseño. En el mundo en el que vivimos, con los sistemas operativos que tenemos, y el hardware disponible este tipo de programación y diseño es un despilfarro de recursos y tiempo. Existen las herramientas necesarias para hacer todo esto con multihilo y además cumplir las alabanzas de tan reputadas webs que justifican el uso de procesos, tanto en eficiencia, velocidad como estabilidad de la aplicación. No somos quienes para decirle a Google como programar nada, que de eso seguro que saben más que nadie, pero está claro que el estado actual de Chrome no lo convierte en una aplicación para usar día a día, de seguir así su propio diseño lo matara por ineficiente.

¿Procesos para ciertas pestañas que lo necesiten? Sin duda, es una solución perfectamente válida para resolver un problema. ¿Procesos para cada pestaña por defecto? Eso es una soberana estupidez.

De todos modos parece que cuando Google hace algo debe de estar bien hecho por definición y buscarle pegas no es necesario, vale con buscar una justificación a medias y aplaudir. Sobre todo aplaudir. Que si no te ven aplaudiendo ya no molas. Aunque tener una opinión acerca de algo en concreto es de lo más respetable y sano me resulta preocupante como blogs que se suponen especializados en internet, software  y demás cosas que podríamos relacionar con Google tienen este tipo de reacción. ¿Moda? ¿Desconocimiento? ¿Estilo de vida? Quién sabe.

1 Trackbacks

You can leave a trackback using this URL: http://www.criandocuervos.com/wp-trackback.php?p=2591

  1. [...] ya hemos dicho se trata de un navegador web rápido, pero quizá no apto para tu maquina. Tanta adulación parece hoy muy [...]

15 Comments

  1. Pues no soy quién para rebatirte si tienes razón o no, pero desde luego, los mismos programadores de Google dejan bien claro que lo de usar procesos independientes para cada pestaña lo han hecho adrede. Échale un ojo al curioso cómic que han publicado al respecto… http://www.google.com/googlebooks/chrome/#

    Posted 3 September, 2008 at 2:59 PM | Permalink
  2. Hombre, es un tema discutible, con pros y contras. Procesos independientes te facilita la recolección, evita problemas de fragmentación y, sobre todo, impide que una pestaña afecte al resto. Obviamente, hay estructuras de memoria que se duplican, pero no estoy tan seguro de que esto solo pese más que los pros. Como en todo, se gana en multitarea, se pierde algo en gestión eficiente de la memoria (aunque en sesiones largas, si mejora en recolección, puede que no tanto).

    Lo dicho, si piensas en un navegador como plataforma para aplicaciones web apuntando a que no necesitas nada más ejecutando en el equipo (que hoy día es pasarse mucho de frenada, todo sea dicho), no creo que sea una arquitectura de software errónea.

    Posted 3 September, 2008 at 3:05 PM | Permalink
  3. Sin duda para las aplicaciones como mencionas Antonio es bueno, y para ejecutarlo como unica aplicacion tambien, pero es que vivimos en un mundo en el que las webs de momento por mucho javascript que lleven siguen siendo en su mayoria solo webs, no aplicaciones. Puede que el navegador este hecho solo a medida de Google… pero la gente no va a usar dos navegadores dependiendo de que paginas visite. Un hardware limitado y especifico para usar aplicaciones online? Poca implantacion tendra.

    Un usuario normal se va a econtrar al final que cuando visita sus webs habituales tienen un consumo de memoria excesivo. De ahi la necesidad de separar lo que son webs de aplicaciones que hacen usod e gears u otros, y en ese caso si es bueno usar procesos.

    Pero tal y como esta planteado ahora mismo Chrome y las circustancias en las que lo vamos a usar no tiene sentido esta arquitectura. Dentro de 2 años a lo mejor si y estan siendo muy visionarios…

    Este uso de procesos para las pestañas de modo indiscriminado es hoy por hoy un error y nada acertado. Veremos la version final.

    Posted 3 September, 2008 at 3:55 PM | Permalink
  4. “De esto, en serio, no sé si reírme o llorar. ¿En Abadía Digital han abierto veinte pestañas simultáneamente? La cantidad de memoria consumida se dispara muy por encima de la de Firefox 3 y hasta de Firefox 2 en sus peores tiempos.”

    Antes de nada he de decir que la idea del multiproceso es una buenísima idea como ya ha señalado Antonio. En segunda instancia tengo una prueba irrefutable de que firefox comsume hasta casi 3 veces el consumo de Chrome en igualdad, aquí tienes una imagen hecha en mi propio ordenador:

    http://img123.imageshack.us/img123/3599/imagen9hi3.png

    Tiene sentido lo que dices? Yo opino que no.

    Otra de las cosas que deberías probar es el tiempo que tarda chrome en cargar una página web pesada, es inmensamente rápido.

    Aun no he hecho pruebas concluyentes respecto a todas las características anunciadas, pero a priori parece que va por buen camino.

    Posted 3 September, 2008 at 5:48 PM | Permalink
  5. Anil, y dónde están el resto de procesos de Chrome? En la captura sólo se ve uno que se está comiendo él solito casi 28 MB de memoria y está usando un 28% de CPU…

    Posted 3 September, 2008 at 6:14 PM | Permalink
  6. …y por dios deja la idea de alojar fotos en imageshack que deja bastante que desear…

    Posted 3 September, 2008 at 6:24 PM | Permalink
  7. No se, lo mismo si ordenas las tareas por nombre y ves agrupados todos los chrome.exe podras comprobar que el consumo total con mas de 10 pestañas es mucho mejor en firefox…

    El multiproceso tiene su evolucion hacia el multihilo como forma mas eficiente de gestionar los recursos, realizar las transiciones entre procesos de un mismo hilo (cosas que estan relacionadas y hacen cosas similares) de manera mas liviana y sobre todo facilitar la comunicacion entre los procesos/hilos.

    Tantos años haciendo más eficiente el hardware y los SOs para que el multihilo tenga mejor rendimiento (muy por encima en la actualidad del multiproceso) no creo que vayan a quedar en ridiculo a estar alturas porque google quiera que su navegador ejecute las pestañas en procesos independientes.

    Por favor no inventemos explicaciones extrañas para una cuestion sencilla. El multiproceso es peor en rendimiento en un entorno mutiprogramado y multitarea que es en el que se va a ejecutar Chrome. La CPU y los recursos no puede ser para el solo y sus procesos, esta es una cuestion basica a la hora de diseñar aplicaciones.

    En serio Anil, revisa tu task manager antes de hacer una captura.

    Posted 3 September, 2008 at 7:39 PM | Permalink
  8. Si el “kit” está en que si hacen multihilo para cada pestaña pierde la gracia de poder cargarte uno si este se estropicia; o habría que hilar muy fino para que al cascar o al matar un hilo colgado no se cargue el espacio compartido de los hilos…

    Que porculo tanto hablar del Chrome, parece que hoy no hay otra cosa por internet…

    Posted 3 September, 2008 at 7:47 PM | Permalink
  9. Si claro esa una de las pocas ventajas de usar procesos… pero es matar moscas a cañonazos.

    Posted 3 September, 2008 at 7:57 PM | Permalink
  10. Fallo tecnico, si no os gusta imageshack proponed alternativa.

    Posted 3 September, 2008 at 8:04 PM | Permalink
  11. Con respecto al multihilo como evolución del multiproceso, creo que podemos ver que actualmente los procesadores tienden a multiproceso/multihilo más que a una de ambas.

    Posted 3 September, 2008 at 8:05 PM | Permalink
  12. A mí sinceramente me la sopla si es multihilo, multiproceso o multipollas. Me la sopla igualmente que sea de Google, Microsoft, Apple, o del tendero de la esquina.

    Lo que no me la sopla es ver que un proceso se come tal cantidad de recursos, y ya no hablamos cuando son 5.

    Habría que ver que habría pasado con este proyecto si en vez de llamarse Chrome se llamara Estaño, y si en vez de ser de Google hubiera sido de 3 freaks del MIT. Probablemente les estaría poniendo a caldo media web.

    Posted 3 September, 2008 at 8:46 PM | Permalink
  13. Es el SO el que proporciona estas caracteristicas apoyandose en algunas capacidades de la CPU, pero estas que ahora ademas son de varios nucleos (varios procesos simultaneos reales) tambien facilitan que los procesos ejecuten sus hilos en varias CPUs simultaneamente, con lo cual mas rendimiento aun… Y ademas transiciones de hilos de un mismo proceso entre diferentes CPUS de manera más eficiente para aprovechar al maximo… ¿Porque? Porque sigue siendo la manera de implementar aplicaciones de la mejor manera. Otra cosa es que ya los programadores busquemos soluciones un poco chungas a problemas que no sabemos resolver en el codigo.

    Posted 3 September, 2008 at 8:48 PM | Permalink
  14. De todos modos es una beta, seguro que están esperando esta clase de reacciones para decidir si se queda así o lo cambian.

    Posted 3 September, 2008 at 9:02 PM | Permalink
  15. Sin duda. Veremos la version final.

    Posted 3 September, 2008 at 9:03 PM | Permalink

Post a Comment

Your email is never shared. Required fields are marked *

*
*