Google desativa SegmentHeap no Chrome devido à regressão de desempenho

Ícone de tempo de leitura 3 minutos. ler


Os leitores ajudam a oferecer suporte ao MSpoweruser. Podemos receber uma comissão se você comprar através de nossos links. Ícone de dica de ferramenta

Leia nossa página de divulgação para descobrir como você pode ajudar o MSPoweruser a sustentar a equipe editorial Saiba mais

Google Chrome

Em maio, a Microsoft lançou a atualização do Windows 10 de maio de 2020 para usuários do Windows 10. A nova atualização veio com SegmentHeap que permitiu que aplicativos Win32 melhorassem o uso de RAM. Logo após o lançamento, a Microsoft anunciou que conseguiu reduzir o uso de RAM no Edge usando o novo recurso.

Em junho, o Google também entrou na onda e anunciou ele usará SegmentHeap no manifesto do Chrome, que corrigirá o comportamento de sobrecarga de memória do Chrome. O recurso foi posteriormente habilitado no Chrome v85, mas após mais testes, o Google foi em frente e desativou o recurso no Chrome. o Google notado que o recurso estava causando problemas de desempenho e, portanto, foi desabilitado.

Com commit https://chromium-review.googlesource.com/c/chromium/src/+/2163163 desembarcado, o Windows >= 10.0.19041.0 (Windows 10 versão 2004 e posterior) optará pelo chrome.exe para usar o heap do segmento do heap legado. Mas o que levou à regressão de desempenho para WebXPRT3, Speedometer2 e JetStream2.

A Microsoft, por outro lado, notado que é comum um aplicativo trocar um recurso por outro, de modo que o uso reduzido de memória significou um aumento no uso da CPU. A Microsoft disse ainda que algumas melhorias podem ser feitas para reduzir o impacto.

É prática comum trocar um recurso por outro. Mais frequentemente, é o aumento do uso de memória para reduzir o uso da CPU. Nesse caso, o uso da CPU aumentou drasticamente para reduzir drasticamente o uso de memória ou confirmar com mais precisão. Se você olhasse para o commit que Bruce fez, você teria encontrado o bug que o levou a usar o segmento heap, e isso foi 100% de sobrecarga do uso do heap de baixa fragmentação nos processos do navegador.

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

Dito isto, há algumas melhorias que podem ser feitas para reduzir o impacto. Eles se dividem em duas áreas, mas nenhuma delas é fácil.

1) Reduza a quantidade de alocações de heap transitórias que o navegador faz. Isso exigirá mudanças significativas em toda a base de código do navegador.
2) Melhore o desempenho do próprio heap do segmento. Isso só pode ser resolvido pela equipe do Windows e estamos investigando nossas opções.

No curto prazo, essa é uma boa troca de um recurso por outro, pois o uso de memória/confirmação é um ponto problemático significativo para os usuários do navegador.

Infelizmente, ontem à noite o Google decidido para ir em frente e desabilitar SegmentHeap. Ele foi movido para trás de uma bandeira GN para que a equipe possa continuar experimentando o recurso para que não seja o fim da estrada.

Desative o heap do segmento por padrão e adicione um sinalizador GN para controlá-lo.

Há alguma preocupação de que o custo do heap do segmento não justifique seu custo (consulte crbug.com/1102281). Este CL o desativa por padrão e coloca esse recurso atrás de um sinalizador GN para nos permitir continuar experimentando com ele.

via: Techdows

Mais sobre os tópicos: google, Google Chrome, Canário do Google Chrome, pilha de segmentos

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *