Google deshabilita SegmentHeap en Chrome debido a la regresión del rendimiento

Icono de tiempo de lectura 3 minuto. leer


Los lectores ayudan a respaldar a MSpoweruser. Es posible que obtengamos una comisión si compra a través de nuestros enlaces. Icono de información sobre herramientas

Lea nuestra página de divulgación para descubrir cómo puede ayudar a MSPoweruser a sostener el equipo editorial. Leer más

Google Chrome

En mayo, Microsoft lanzó Windows 10 May 2020 Update para usuarios de Windows 10. La nueva actualización vino con SegmentHeap que permitió que las aplicaciones Win32 mejoraran el uso de RAM. Poco después del lanzamiento, Microsoft anunció que había logrado reducir el uso de RAM en Edge usando la nueva función.

En junio, Google también se subió al carro y anunció utilizará SegmentHeap en el manifiesto de Chrome, lo que solucionará el comportamiento de acaparamiento de memoria de Chrome. La característica fue más tarde facilita en Chrome v85, pero después de más pruebas, Google siguió adelante y deshabilitó la función en Chrome. Google señaló que la función estaba causando problemas de rendimiento y, por lo tanto, se ha desactivado.

Con la confirmación https://chromium-review.googlesource.com/c/chromium/src/+/2163163 aterrizada, Windows >= 10.0.19041.0 (Windows 10 versión 2004 y posteriores) habilitará chrome.exe para usar el montón de segmentos en su lugar. del montón heredado. Pero eso condujo a una regresión en el rendimiento de WebXPRT3, Speedometer2 y JetStream2.

Microsoft, por otro lado, señaló que es común que una aplicación intercambie un recurso por otro, por lo que el uso reducido de la memoria significó un aumento en el uso de la CPU. Microsoft dijo además que se podrían hacer algunas mejoras para reducir el impacto.

Es una práctica común intercambiar un recurso por otro. Más a menudo, se trata de un mayor uso de la memoria para reducir el uso de la CPU. En este caso, se trata de un mayor uso de la CPU para reducir drásticamente el uso de la memoria o, de manera más precisa, comprometerse. Si observaste la confirmación que hizo Bruce, habrías encontrado el error que lo llevó a usar el montón de segmento, y eso fue una sobrecarga del 100% por el uso del montón de baja fragmentación en los procesos del navegador.

https://bugs.chromium.org/p/chromium/issues/detail?id=1014701#c9

Dicho esto, hay algunas mejoras que se pueden hacer para reducir el impacto. Se dividen en dos áreas, pero ninguna es fácil.

1) Reducir la cantidad de asignaciones de montón transitorias que realiza el navegador. Esto requerirá cambios significativos en todo el código base del navegador.
2) Mejorar el rendimiento del propio montón de segmentos. Esto solo puede ser abordado por el equipo de Windows y estamos investigando nuestras opciones.

A corto plazo, esta es una buena compensación de un recurso por otro, ya que el uso de memoria/confirmación es un punto importante para los usuarios del navegador.

Desafortunadamente, anoche Google decidido para continuar y deshabilitar SegmentHeap. Se ha movido detrás de una bandera GN para que el equipo pueda continuar experimentando con la función para que no sea el final del camino.

Deshabilite el montón de segmentos de forma predeterminada y agregue un indicador GN para controlarlo.

Existe cierta preocupación de que el costo del almacenamiento dinámico del segmento no lo justifique (consulte crbug.com/1102281). Este CL lo deshabilita de forma predeterminada y coloca esta función detrás de una bandera GN para que podamos seguir experimentando con ella.

Vía: Techdows

Más sobre los temas: google, Google Chrome, Google Chrome Canary, montón de segmento

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *