memoria de Chrome y huella de CPU

memoria de Chrome y huella de CPU

Busqué una respuesta en los foros pero no pude encontrar la respuesta que estaba buscando [1], así que pensé que también podría ser de interés para más personas por aquí.

Gran parte de mi trabajo lo realizo en el navegador (o para el navegador, si se quiere decir así). Tiendo a usar Chrome porque tiene de forma nativa muchas de las funciones más nuevas que necesito (cosas de DevTools, principalmente, pero no solo). Por cierto, normalmente estoy ejecutando la última versión/compilación de Chrome disponible en una computadora de escritorio Vaio con 4 GB de RAM y CPU de doble núcleo y Ubuntu 12.04 como distribución y Gnome como administrador de ventanas.

Entonces, tenía curiosidad sobre a) ¿por qué Chrome genera tantos subprocesos incluso abriendo solo tres de cuatro pestañas y b) hay alguna forma de asignar más memoria a Chrome para evitar que su rendimiento se degrade?

Gracias de antemano,

Nacho

PD [1] Encontré hilos sobre Chrome congelado o quedarse sin memoria, pero no sobre las razones para que esto sea así o para evitar que suceda.

PPS Por supuesto, siempre podría comprar una máquina más nueva y más capaz y eso es exactamente lo que estoy tratando de evaluar: ¿es una cuestión de hardware obsoleto o el problema seguirá apareciendo en cualquier máquina (de tamaño decente pero no enorme)?

Respuesta1

Chrome separa cada parte principal del navegador en procesos separados. Por ejemplo, el navegador en sí es su propio proceso, cada pestaña es su propio proceso y cada extensión es su propio proceso. También es probable que haya un proceso de GPU separado. (Puedes ver estos detalles yendo a about:memory).

Parte de la ventaja aquí es el acceso limitado que cada parte tiene sobre las otras partes. Por ejemplo, si hubiera un script malicioso en una extensión o pestaña, entonces (idealmente) solo podría afectar su propio proceso y no cerrará todo el navegador. Si una pestaña se congela por cualquier motivo, solo se cierra esa pestaña (y posiblemente las pestañas que abra desde esa pestaña), pero no todo el navegador. (Ver también acerca de: sandbox).

No puedes preasignar memoria a Chrome; Si Chrome necesita más memoria y está disponible, la utilizará. Tenga en cuenta que la condición limitante también puede estar en el lado de E/S, ya que Chrome tiene que leer su perfil, preferencias y al menos parte de su historial durante el inicio y el uso general. Linux y Unix tienen una función que permite almacenar archivos en la RAM, lo que resultará en un acceso más rápido (leer desde la memoria es más rápido que leer desde el disco duro y también puede reducir el desgaste en el caso de muchas escrituras), pero con un potencial pérdida de datos (el contenido de la RAM se pierde cuando su computadora pierde energía o se apaga).

Hay un guión llamadodemonio-de-sincronización-de-perfilesque almacena el perfil del navegador y el caché en la RAM y sincroniza el perfil con el disco duro cada hora. Esto significa que si su computadora se queda sin energía o se apaga por completo, su perfil e historial tendrán como máximo una hora de antigüedad. (En el apagado normal, el script sincroniza el contenido de la memoria al disco duro). Consulte el enlace anterior para obtener más información sobre la instalación yestepágina para la instalación en Ubuntu.

Tenga en cuenta que Chrome(ium) almacena el caché por separado de su perfil, y el script solo se ocupa del perfil (está fuera del alcance del script administrar el caché). Es posible que desee mover el caché de la ubicación actual al directorio del perfil y agregar un enlace simbólico en la ubicación anterior a la nueva ubicación.

información relacionada