14 puntos por xguru 2020-11-29 | 5 comentarios | Compartir por WhatsApp
  1. La velocidad de ejecución del código de Intel por parte de Apple, que parece magia negra, se basa esencialmente en la combinación de las arquitecturas Arm e Intel

  2. Estos dos CPU tienen diferencias de base en el "ordenamiento de memoria", por lo que la emulación suele ser lenta. Una de las soluciones de Apple fue simplemente incorporar también la forma de Intel. Al ejecutar código x86, hace que siga el ordenamiento de memoria de Intel

  3. Agregó instrucciones optimizadas para JavaScript y duplicó la caché L1, logrando que al navegar por la web sea más rápido y la batería dure más

  4. El dual-core de la MacBook Air con Intel funciona a 3.8Ghz cuando va rápido, y en modo lento opera a 1.2Ghz para ahorrar energía, pero Intel no lo diseñó para ejecutarse con reducción de frecuencia.

Apple optimizó esto colocando 4 procesadores de rendimiento y 4 de eficiencia por separado. En modo de bajo consumo, apaga los 4 procesadores de rendimiento y funciona solo con los de eficiencia.

Al realizar tareas como compilación, aprovecha los 4 procesadores completos y por eso es realmente rápido.

  1. Intel está 3 años detrás de la ley de Moore. Apple Silicon usa el más reciente proceso de 5 nanómetros de TSMC, mientras que Intel usa procesos de 10 nm/7 nm, e incluso muchos productos de Intel siguen usando procesos más antiguos de 14/10 nm.

  2. El lenguaje Swift usa "conteo de referencias" en lugar del "garbage collection" de Android. Apple hizo algo en el CPU para duplicar la velocidad del conteo de referencias.

5 comentarios

 
xguru 2020-12-02

¿Por qué los chips ARM tienen instrucciones con nombres de JavaScript? https://es.news.hada.io/topic?id=3057

 
iolothebard 2020-11-30

El conteo de referencias es la base de la recolección de basura... ¿de qué está hablando...? De repente mi nivel de confianza se desplomó...

 
xguru 2020-12-02

Relacionado con esto, hay un comentario interesante.

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

Dicen que la velocidad de hacer Retain/Release de un NSObject simple en sí es 5 veces más rápida.

Parece que incluso la instrucción misma que hace el conteo de referencias funciona más rápido debido a diferencias en la estructura de ordenamiento de memoria.

 
kunggom 2020-11-30

En Java, por lo general se usan otros estilos de recolección de basura, como Mark-and-Sweep, en lugar de Reference Counting.

 
xguru 2020-11-30

¿Eh? Entonces... supongo que también hay que pensar que el garbage collection será así de rápido, ¿no? jaja