Rendimiento Macs M1 desarrollo web

No son pocos los desarrolladores que en sus ordenadores personales, sean Mac, Windows 10 o Linux, tienen instalado un Webserver local con Apache, PHP y MySQL para el desarrollo de páginas web. Vamos a ver que tal rinden para desarrollar bajo estos entornos los nuevos Mac con procesador Apple Silicon M1.

Apple Silicon M1 para desarrollar web

Este conjunto de aplicaciones para desarrollar sobre un webserver local, conforman lo que se denomina un stack de desarrollo web.

El que vamos a analizar se trata de un stack bastante tradicional, básico pero muy extendido. No es un entorno moderno al no incluir node.js, ni docker, ni otros.

No obstante este stack de desarrollo web es en sí el que más se emplean a lo largo y ancho del mundo.

Comprar un Mac con M1 para desarrollar web

En la decisión de compra de un ordenador nuevo una de las cosas que más considera un desarrollador web es la velocidad con la que va a poder trabajar. Más que nada para intentar minimizar los tediosos tiempos de copiado y restaurado, tanto de los archivos que componen cada proyecto como los de sus correspondientes bases de datos.

Lenguajes para el desarrollo web

Si bien, el desarrollo web bajo este stack no es crítico en cuanto a velocidad y requerimiento, pues con este stack no se requiere de compilación para la publicación en los servidores de producción. Tal como si que requieren otros más modernos como node.js.

Vaya por delante que la opinión general sobre el rendimiento de estos nuevos ordenadores Mac con chip M1 que he podido constatar de primera mano, es desde luego bárbaro.

Estos nuevos macs son unos auténticos «game changer» ahora bien, no es oro todo lo que reluce en estos Macs con Apple Silicon, al menos por el momento. Veamos por qué.

Rosetta 2 permite lanzar apps de Intel en M1

Rosetta 2 Un milagro

La nueva arquitectura de los Mac es ARM diferente a la arquitectura x86 de los Mac que equipan procesadores Intel. Por lo que los Mac con M1 van a requerir apps desarrolladas para ellos de forma específica para desatar todo su potencial.

El sistema operativo de Apple, macOS y la típica suite de apps que lo acompañan, como Safari, GarageBand, iMovie, Numbers Keynote, Pages ya se encuentra desarrolladas para M1 y funcionan de lujo.

Para el resto de aplicaciones, casi todas funcionarán, y de forma rápida y perfecta gracias al ingenioso sistema Rosetta, ahora en su versión 2.

Este sistema Rosetta lanza las app y las emula de una forma totalmente transparente para el usuario, no se distinguen unas de otras.

Si bien la emulación y el rango de compatibilidad que se consigue con el invento de Apple, el sistema Rosetta 2, es digno de elogio, en algún punto concreto las tornas se cambian, y me temo que es en el desarrollo web, bajo el stack que he comentado anteriormente.

Es de suponer que pronto veamos más apps preparadas de forma nativa para los chips M1.

En el momento de escribir este artículo hace más de dos meses que estos Macs están en el mercado.

Me escama que algunas aplicaciones, necesarias para mi entorno, aún no hallan anunciado su portabilidad a M1, es como si el fabricante de la app pensase que si ya «funcionan» bajo Roseta, por el momento es suficiente.

El setup del Windows y del Mac M1

Rendimiento Macs M1 desarrollo web
Rendimiento Macs M1 desarrollo web

Voy a comparar dos equipos bastante dispares para el desarrollo web.

Por un lado tenemos un PC de escritorio con 5 años de antigüedad, se trata de un Intel Core i5-6500 de cuatro núcleos cuatro hilos, sin hyperthreading y 16 Gb de RAM. Es un Intel de 6 generación, cuando ahora se ha anunciado la 11, aunque también es cierto que desde esa 6a generación los cambios han sido más bien a nivel de eficiencia energética que de rendimiento puro.

En el lado de la manzana, tenemos un MacBook Air con chip M1, 8Gb de memoria RAM.

Esta diferencia de «edad» y de «generaciones» debería dar como claro ganador al MacBook Air, pero en este caso el stack utilizado funciona todavía bajo Rosetta lo que debería equilibrar la balanza. Veamos las versiones de cada uno de ellos.

Versiones del webserver del Mac M1 y del Windows

En el equipo con Windows 10 contamos con la aplicación WampServer en su versión 2.5 corriendo Apache 2.4.9, PHP 7.2.2 y MySQL 5.6.17

En el portátil MacBook Air tenemos MAMP en la versión 6.3 corriendo Apache y PHP 7.4.12 y MySQL 5.7.32

A priori todo más nuevo, seguro y optimizado en el MacBook que el existente en el equipo de Windows 10.

He tenido que modificar la configuración de PHP para poder realizar las pruebas de importación pues las bases de datos que necesito importar superan holgadamente los 2Mb de tope que tiene configurado el fichero php.ini por defecto.

El resto de aplicaciones que conforman el stack de desarrollo web las he podido dejar tal cual.

Rendimiento MySQL en M1

Tras realizar pruebas de creación de bases de datos desde cero, entrada de registros, consultas de todo tipo, las diferencias de rendimiento entre ambos entornos de desarrollo web, uno basado en Mac y otro en Windows, son inexistentes, claro que al levantar esas bases de datos desde cero no contienen muchos datos.

Así que vamos a continuar las pruebas con algunas bases de datos de mayor tamaño de forma que tanto las importaciones como las consultas sufran al tener que manejarse entre miles y miles de datos.

En la importación de un archivo SQLde 50 Mb. que comprimido con gzip ocupa unos 10 Mb el MacBook Air con M1 ha tardado 4 minutos en importar dicho archivo mientras que wl viejo Windows con un procesador Intel i5-6500 ha necesitado tan sólo 1 minuto.

Repetimos la operación con otra base de datos que cuenta con 300.000 registros repartidos en 7 tablas y sumando 42 Mb. de datos, pasó exactamente lo mismo, el MacBook Air con procesador M1 se demoró entre 4 y 5 veces más.

Ahora subimos el listón con bases de datos de 1,1 Gb, comprimidos bajo formato gzip, lo que da lugar a archivos de 230 Mb.

En el primer intento ambas máquinas provocan un error de tiempo de ejecución y debemos volver a modificar los tiempos máximos en los respectivos archivos php.ini

Programación en Macs M1

Además del manejo de las bases de datos es vital que el entorno de desarrollo web mueva, abra y edite archivos de forma cómoda y fácil.

Existen infinidad de editores, algunos de los que por ejemplo utilizo habitualmente están sólo disponibles para una de ambas plataformas de desarrollo web por lo que me voy a centrar en los que son comunes a ellos. Visual Studio Code, Atom y Brackets.

Este editor, creado por Microsoft, y altamente especializado en programación se ha convertido por derecho propio en una de las aplicaciones más utilizadas en prácticamente cualquier entorno de trabajo.

Visual Studio Code existe para las tres plataformas principales, Windows 10, macOS y Linux.

Si bien en macOS, en el momento de escribir este artículo Visual Studio Code es por el momento Intel, no es una app universal, que es como se llaman las realizadas para M1.

En el equipo Windows 10, Visual Studio Code vuelve a ganar sobre la versión emulada en el Mac, abre en la mitad de tiempo y eso que el disco SSD del equipo Windows debería ser como mínimo la mitad de rápido que el del Mac.

Ahora bien, los tiempos de apertura son muy livianos para ambos casos, 1 y 2 segundos respectivamente.

En cambio lanzando el editor Atom gana el MacBook Air revertiendo los resultados.

Bajo Brackets, otro editor de código fuente habitual, vuelve a tomar cabeza Windows 10.

Otras apps

Aunque las herramientas de diseño y de tratamiento de imagen no son algo que de entrada se atribuyan a la programación y desarrollo, cuando hablamos de web, en el mundo real, todos los desarrolladores deberemos tener manejo de alguno de los programas de edición de vectores y retoque de imagen para poder adecuar logos, y objetos gráficos en las páginas web.

Inkscape 1.0.2, un programa para la edición de gráficos de vectores abre más rápido en los nuevos Mac con chip M1 que en Windows, aproximadamente al doble de velocidad.

Gimp 2.10 abre en unos 10 segundos en Windows, en el MacBook Air lo hace en tan sólo 2 segundos.

Conclusión sobre si los Mac M1 son buenos para desarrollar web

Desde luego si estás pensando en cambiar tu equipo de desarrollo y tu presupuesto alcanza para lo que cuesta un MacBook Air, yo no me lo pensaba, son unos equipos sorprendentes, llevan el rendimiento a otro nivel.

Incluso con el «pero» de MAMP, que por no ser nativo de M1 todavía no rinde al nivel del resto de apps, se comporta de forma suficientemente solvente, y el resto de apps, volarán.

Si por el contrario, estás pensando en cambiar tu equipo pero no te alcanza el presupuesto, pues nada a buscar algo dentro de tu presupuesto. Para desarrollar web no se necesita un gran equipo, eso sí, cuenta con 8 Gb de RAM mínimo y una CPU de 4 núcleos, sin importar mucho si es un i5 un i7 o un poderoso Ryzen.

No te pierdas los siguientes artículos de tiroriro