14 pontos por xguru 2020-11-29 | 5 comentários | Compartilhar no WhatsApp
  1. A velocidade de execução do código Intel da Apple, que parece magia negra, é basicamente a combinação das arquiteturas Arm e Intel.

  2. As duas CPUs têm, por padrão, "ordenação de memória" diferente, o que torna a emulação lenta; uma solução da Apple foi simplesmente incorporar também o modo da Intel. Ao executar código x86, ela faz com que siga a ordenação de memória da Intel.

  3. Ao adicionar instruções otimizadas para JavaScript e dobrar o cache L1, ela tornou a navegação na web mais rápida e fez a bateria durar mais.

  4. O dual-core do Intel MacBook Air operava a 3,8 GHz quando estava rápido e a 1,2 GHz no modo lento para economizar energia, mas a Intel não projetou isso para rodar em downclock.

A Apple otimizou isso colocando 4 processadores de desempenho e 4 de eficiência. No modo de baixo consumo, ela desliga os 4 processadores de desempenho e opera apenas com os de eficiência.

Ao realizar tarefas como compilação, ela usa plenamente os 4 processadores, ficando realmente rápida.

  1. A Intel está 3 anos atrás na Lei de Moore. O Apple Silicon usa o processo mais recente de 5 nm da TSMC, enquanto a Intel usa processos de 10 nm/7 nm, e muitos produtos da Intel ainda usam processos mais antigos de 14/10 nm.

  2. A linguagem Swift usa "contagem de referências" em vez do "garbage collection" do Android. A Apple fez algo na CPU para dobrar a velocidade da contagem de referências.

5 comentários

 
xguru 2020-12-02

Por que há instruções com nome de JavaScript em chips ARM? https://pt.news.hada.io/topic?id=3057

 
iolothebard 2020-11-30

A contagem de referências é o básico da coleta de lixo... do que ele está falando... de repente a credibilidade caiu bastante...

 
xguru 2020-12-02

Há um comentário sobre isso.

https://twitter.com/catfish_man/status/1326238434235568128?s=21

Dizem que a velocidade de fazer Retain/Release de um simples NSObject em si é 5 vezes mais rápida.

Parece também que a própria instrução de contagem de referências funciona mais rápido, por causa da diferença na estrutura de ordenação de memória.

 
kunggom 2020-11-30

Em Java, normalmente se usa um estilo de coleta de lixo diferente, como Mark-and-Sweep, em vez de Reference Counting.

 
xguru 2020-11-30

Ué? Eu pensei: então isso significa que o garbage collection também deve ser rápido nessa mesma proporção, né... kkk