Screen Test Pro

O mesmo Mac, cinco navegadores, cinco pontuações

Por Screen Test ProPublicado em

Um Mac Studio com M4 Max marcou 10.630 no nosso benchmark numa Apple Store. O MacBook Pro com que o comparamos — um M2 Max mais antigo — tinha marcado cerca de 12.900 em casa. O chip mais novo e maior perdeu por 18%, e os suspeitos óbvios (36 GB de RAM contra 96, uma unidade de demonstração ociosa contra uma máquina de desenvolvimento em pleno uso) não explicam nada disso.

Então passamos uma única máquina — aquele mesmo M2 Max, a mesma tela, a mesma tarde — por cinco navegadores:

Safari 26 Edge 152 Opera 131 Firefox 156 Chrome 151
Pontuação 11.443 11.713 12.801 6.275 ~12.900

Mesmo silício, mesma tela, um fator de dois entre o melhor e o pior. Os números por cena são ainda mais estranhos que os totais. Nossa cena de raymarching, Cromo líquido, sustentou 25.523 unidades no Safari e 5.622 no Firefox — na mesma GPU. Círculos em Canvas 2D: 64.476 no Opera, 9.960 no Firefox. Nossa cena de física na CPU rodou 29% mais rápido no Safari do que em qualquer navegador Chromium, porque o JavaScriptCore se dá melhor com esse código do que o V8.

E o resultado da loja acabou sendo a mesma história com outra roupa. No Safari, um M2 Max sustentou 25.523 unidades do raymarcher — mas o M4 Max da loja sustentou 6.222, e um M5 Pro, 2.628. Mesmo navegador, mesma cena, e GPUs mais novas e mais rápidas indo de quatro a dez vezes pior. O shader tinha um loop de 180 iterações, e alguma combinação das gerações mais novas de GPU com o compilador Metal engasgava nele, enquanto as mais antigas não. Aquela cena já não media a vazão de fragmentos. Media a sorte do compilador.

O que um benchmark de navegador mede, honestamente

O número que este site produz não é uma nota do chip. É uma medição de toda a pilha que você realmente usa: silício, driver, compilador de shaders, motor JavaScript, rasterizador do canvas, compositor. Isso é uma qualidade — é o desempenho que você tem ao abrir uma página —, mas significa que duas regras importam na hora de comparar:

Compare dentro de um mesmo navegador. Uma pontuação do Safari e uma do Chrome são medições de duas pilhas diferentes que por acaso compartilham um chip. Nosso ranking de melhores pontuações já mostra o navegador em cada linha há algum tempo; agora a folha de resultados também mostra a mediana do mesmo hardware por navegador, quando há amostras suficientes.

Um benchmark não deveria amplificar as manias da pilha. A pilha fazer parte da medição é honesto. Uma cena desabar 10× porque um compilador não gosta do formato de um loop não é — isso é o benchmark sendo frágil, e cabe a nós consertar.

O que mudou no benchmark 2.3.0

O raymarcher agora desenha em passadas pequenas. Em vez de um shader que faz loop até 180 amostras, o Cromo líquido acumula passadas repetidas de quatro amostras — as mesmas posições de amostragem, o mesmo trabalho total, a aritmética igual até o último dígito. Um loop de quatro iterações é exatamente o tipo de shader que todo motor compila bem; se isso vai trazer as GPUs mais novas da Apple de volta à tendência da vazão de fragmentos é o que a próxima visita à loja vai mostrar. O Firefox não se mexeu — 5.622 também com o shader novo — porque o custo dele está no trabalho que cada amostra faz, não no loop em volta, e corrigir isso mudaria a própria carga de trabalho.

Um só orçamento sustentado para toda tela. Os timestamps reais de vsync são mais bagunçados do que o modelo arrumado que lançamos na 2.2.0, e máquinas com telas de taxa fixa tinham, sem ninguém perceber, um orçamento sustentado por quadro ~9% mais folgado que notebooks com sincronização adaptativa. Agora todos respondem à mesma média aparada de 17,5 ms.

Partidas a frio pararam de gerar lixo. As primeiras execuções num navegador recém-aberto eram brutais: um Mac de demonstração na loja marcou 77 e, poucos minutos depois, 8.553; nossas próprias primeiras execuções no Safari em casa deram 304 e 1.149 antes de um 11.443. Três correções: o benchmark agora verifica se a sua máquina está ocupada antes de gastar três minutos, espera em cada cena passarem os engasgos de compilação de shaders da primeira visita e dá a uma cena que não mediu nada mais uma tentativa no fim da execução, se a máquina tiver sossegado. Nada é inventado — uma nova tentativa é só uma segunda medição.

As marcas agora dizem a verdade. Uma execução em que todas as cenas mediram, mas um nível não pôde ser confirmado por três janelas seguidas, antes era jogada para o piso e ficava totalmente fora do ranking. Nossos dados de produção mostram que esses níveis ficam cerca de 13% abaixo do que dispositivos estáveis medem — é hardware no limite sendo honesto, não um número manipulado —, então agora eles são publicados com uma marca, e cada marca de cena diz exatamente qual de três coisas aconteceu.

E os resultados viajam. Copiar link agora empacota o resultado inteiro — pontuação, cargas por cena, tempos de quadro, marcas — no próprio link. Nada é enviado; abra em qualquer lugar e ele aparece somente para leitura. Se algum dia você medir um computador que não é seu, não precisa mais fotografar a tela. A gente sabe. Fotografamos muitas telas.

Pontuações da 2.3.0 nunca se misturam com versões anteriores, então o ranking recomeça do zero. Se quiser a versão longa de como a medição funciona — as janelas de tempo de quadro, a escada de carga, o que pode invalidar uma execução —, a página de metodologia tem tudo. Ou simplesmente rode o teste: leva cerca de três minutos e agora avisa logo de cara se a sua máquina não está num bom momento.

Compartilhar esta página
DiscussãoUm tópico por idioma, compartilhado no site inteiro. Entre com o Google para publicar.
Discussão