Dos meses usando Apple Sillicon

Hace un par de meses, me cambiaron el ordenador del trabajo por un modelo más reciente. Cuando me lo renovaron, el modelo que me asignaron era uno de los recientes que utiliza la arquitectura Apple Sillicon y un procesador M1, como el que están usando ya en algunos iPad. Aquí cuento algunas de las cosas buenas y malas que me he encontrado en estos dos meses.

Cosas positivas

Mi opinión está posiblemente sesgada debido a que este ordenador no deja de ser un ordenador de trabajo. No es mío realmente, es prestado y no me pertenece, y tampoco tiene cargado software que no tenga que ver con mi trabajo, así que más allá de editores de textos, entornos de Node.js y otras aplicaciones que necesito para trabajar, no tiene gran cosa. No hay editores de vídeo, no hay juegos, no hay nada de lo que emplearía en un ordenador más personal.

También mis impresiones podrían estar sesgadas por el anterior modelo, que era un 2015, de modo que su procesador ya tiene unos cuantos años y eso puede hacer que algunos programas recientes no vayan tan bien. Y, sin embargo, lo poco que tengo lo veo con un rendimiento bastante bueno. Por hacer una comparación a base de lo que he visto en mi día a día:

  • En mi anterior ordenador tardaba en torno a unos 10 minutos en instalar Ruby a través de rbenv. Para instalar Ruby, rbenv compila Ruby desde el código fuente, así que el proceso de instalación incluye asegurarse de que hay compiladores de C instalados, descargar y compilar OpenSSL, y finalmente descargar y compilar todo el runtime de Ruby. En mi ordenador con Apple Sillicon y procesador M1, esto le toma 3 minutos, o sea, una tercera parte del tiempo.
  • En mi anterior ordenador, ejecutar una suite de tests completa del proyecto con el que más tiempo paso le podía llevar entre 20 y 25 minutos. En el Apple Sillicon, toma de 5 a 6 minutos.

De cara a la parte térmica, en dos meses todavía estoy esperando a escuchar alguna vez el ventilador de mi ordenador. Ni siquiera cuando estoy ejecutando tests más complejos o haciendo operaciones más intensas lo he llegado a escuchar. Alguna vez lo he notado un poco caliente, pero muy poco. Casi ni podría decir que se calienta mucho.

Y de batería, resulta impresionante como puedo estar toda la mañana trabajando con él sin enchufarlo a la red para luego encontrarme la batería al 70% o al 75%. Incluso lanzando servidores, corriendo tests, usando el navegador web, teniendo varias aplicaciones Electron en ejecución o entrando en videollamadas.

En cuanto a compatibilidad, existen varias aplicaciones que todavía son Intel, pero no lo notas, debido a que funcionan igual que una aplicación ARM, sin pérdida de rendimiento. Fundamentalmente, veo esto en aplicaciones Electron, donde usan algunos runtimes antiguos que todavía son Intel y que aún no han actualizado a Sillicon.

Para la línea de comandos también es posible usar binarios Intel si se ejecuta a través del wrapper arch, por ejemplo arch -arch x86_64 terraform para ejecutar una versión x86_64 de Terraform. He elegido Terraform como ejemplo, precisamente, porque algunos plugins que no estén actualizados puede que sólo tengan versión Intel en el registry; así que al final es más conveniente instalar todo Terraform como una aplicación Intel para no llevarse sorpresas cuando un Terraform ARM trata de invocar un plugin que no es compatible.

Cosas negativas

No obstante, no es oro todo lo que reluce, y aquí algunas de las cosas negativas que he encontrado en el M1 en estos meses:

  • Aunque es algo que en los últimos modelos ya están corrigiendo, mi ordenador es de primera generación, de modo que el número máximo de pantallas externas que puedo enchufar por lo general es… una y no más. Reportan que con docks compatibles con DisplayLink es posible usar más de una, pero con un cable USB-C ordinario o con un adaptador genérico HDMI a USB-C, aparte de la pantalla interna sólo se hace posible trabajar con una pantalla a la vez.
  • El único punto donde he encontrado conflictos en la compatibilidad con el procesador es, irónicamente, en línea de comandos. Todavía está pendiente de salir una versión de GCC que tenga soporte real para darwin-arm64, de modo que la única alternativa al clang es utilizar una versión de GCC en modo Intel. Por otra parte, algunas bibliotecas nativas de Node.js tienen problemas para compilar, por lo que al final lo más seguro que encuentro es emplear versiones Intel de Node.js a través de Rosetta. Tengo dos instalaciones de Homebrew, una Intel y otra ARM, por esta razón.
  • Como el procesador es ARM y no Intel, si se usa Docker o Podman se usará también un kernel Linux para ARM dentro del hipervisor, así que hay que tener esto en cuenta si los Dockerfiles no son compatibles o descargan directamente binarios para la arquitectura incorrecta.

Opinión final

No obstante, pese a que lo de que no acepte más de una pantalla en los primeros modelos es una cagada bastante grande, mi resumen general sobre el procesador M1 (y todos los que han venido detrás de él) es que es una tecnología revolucionaria. El M1 ha agitado bastante las bases de los procesadores para ordenadores normales. Quitando algunos modelos de la Surface que pueden tener un buen rendimiento parecido al de un iPad Pro, ARM hasta ahora ha sido visto principalmente como procesador para computación móvil o para ordenadores pequeños como la Raspberry Pi o los Pinebook (1). Sin embargo, para ordenadores normales de escritorio hasta ahora nunca ha habido nada excesivamente sorprendente. El M1 es uno de los primeros procesadores que busca llevar ordenadores con rendimiento equivalente a un Intel a las mesas de trabajo o de entretenimiento. Algunos fabricantes se han empezado a animar. Por ejemplo, Lenovo está preparando el lanzamiento del X13s para este 2022, un portátil general que utiliza Snapdragon que pretende darle algo de vidilla al ecosistema Windows ARM, el cual lleva existiendo varios años sin que esté destacando demasiado por el momento.


(1) En realidad, esta frase está ignorando procesadores ARM como el A64FX, el cual está siendo usado por algunos computadores como el que desde hace un par de años lidera el Top 500.