Configuración de las Pruebas
Todos los benchmarks se ejecutaron en servidores dedicados de MyRemoteMac bajo condiciones idénticas:
- M4 Pro: Mac Mini M4 Pro, CPU de 14 núcleos / GPU de 20 núcleos, 24GB RAM, 512GB SSD
- M4: Mac Mini M4, CPU de 10 núcleos / GPU de 10 núcleos, 16GB RAM, 256GB SSD
- M2 Pro: Mac Mini M2 Pro, CPU de 12 núcleos / GPU de 19 núcleos, 16GB RAM, 512GB SSD
- Intel i9: Mac Mini Intel Core i9 (2018), 6 núcleos, 32GB RAM, 512GB SSD
- macOS: Sequoia 15.2, Xcode 16.2, todas las últimas actualizaciones
Puntuaciones Geekbench 6
Geekbench 6 mide el rendimiento bruto del CPU. La puntuación de un solo núcleo indica la capacidad de respuesta para tareas cotidianas y operaciones del IDE. La puntuación multinúcleo refleja el rendimiento de compilación.
| Chip | Un Solo Núcleo | Multinúcleo | vs Intel i9 |
|---|---|---|---|
| M4 Pro | 3,850 | 22,000 | +129% SC / +168% MC |
| M4 | 3,800 | 15,000 | +126% SC / +83% MC |
| M2 Pro | 2,750 | 14,500 | +64% SC / +77% MC |
| Intel i9 | 1,680 | 8,200 | Baseline |
Dato clave: La puntuación multinúcleo del M4 Pro es 2,68 veces más rápida que la del Intel i9, lo que significa que las compilaciones que tardaban 10 minutos en Intel ahora se completan en menos de 4 minutos. La mejora en un solo núcleo significa que la interfaz de Xcode, el autocompletado de código y la indexación se sienten drásticamente más receptivos.
Tiempos de Compilación en Xcode
Probamos compilaciones limpias en un proyecto iOS de producción grande con aproximadamente 500.000 líneas de código Swift, más de 200 targets y módulos mixtos Swift/Objective-C.
| Chip | Tiempo de Compilación Limpia | Compilación Incremental | Tiempo Ahorrado vs Intel |
|---|---|---|---|
| M4 Pro | 4m 12s | 8s | 8m 18s saved (66%) |
| M4 | 5m 45s | 11s | 6m 45s saved (54%) |
| M2 Pro | 7m 15s | 14s | 5m 15s saved (42%) |
| Intel i9 | 12m 30s | 32s | Baseline |
Cómo Medimos
# Clean build measurement xcodebuild clean time xcodebuild -workspace App.xcworkspace \ -scheme App \ -destination 'platform=iOS Simulator,name=iPhone 16' \ build 2>&1 | tail -1 # Incremental build (single file change) touch Sources/App/ContentView.swift time xcodebuild -workspace App.xcworkspace \ -scheme App \ -destination 'platform=iOS Simulator,name=iPhone 16' \ build 2>&1 | tail -1
Compilación Limpia con Swift Package Manager
Probamos un proyecto Swift Package Manager con 50 dependencias, incluyendo paquetes grandes como Alamofire, Kingfisher, SnapKit y Firebase SDK.
| Chip | Resolución de Dependencias | Compilación Limpia | Tiempo Total |
|---|---|---|---|
| M4 Pro | 12s | 1m 38s | 1m 50s |
| M4 | 14s | 2m 15s | 2m 29s |
| M2 Pro | 15s | 2m 52s | 3m 07s |
| Intel i9 | 28s | 5m 45s | 6m 13s |
# SPM clean build measurement swift package clean time swift build -c release 2>&1 | tail -5 # With parallel jobs (default uses all cores) time swift build -c release -j $(sysctl -n hw.ncpu)
Rendimiento de Compilación Docker
Probamos la compilación de una imagen Docker de una aplicación Node.js de producción (compilación multi-etapa con npm install, compilación TypeScript y configuración de nginx) usando Docker Desktop para Mac.
| Chip | Compilación Docker (sin caché) | Compilación Docker (capas en caché) | Tamaño de la Imagen |
|---|---|---|---|
| M4 Pro | 42s | 6s | 185MB |
| M4 | 58s | 7s | 185MB |
| M2 Pro | 1m 15s | 8s | 185MB |
| Intel i9 | 2m 38s | 12s | 192MB |
# Docker build benchmark docker system prune -af time docker build --no-cache -t benchmark-app . # Cached rebuild (change only app source, not dependencies) echo "// updated" >> src/index.ts time docker build -t benchmark-app .
Rendimiento de Inferencia LLM
La arquitectura de memoria unificada de Apple Silicon la hace excelente para ejecutar modelos de lenguaje grandes de forma local. Probamos la velocidad de inferencia usando llama.cpp con aceleración Metal.
| Modelo | M4 Pro (tok/s) | M4 (tok/s) | M2 Pro (tok/s) | Intel i9 (tok/s) |
|---|---|---|---|---|
| Llama 3 8B (Q4_K_M) | 48.2 | 35.6 | 28.4 | 8.1 |
| Mistral 7B (Q4_K_M) | 52.7 | 38.9 | 31.2 | 9.3 |
| Llama 3 70B (Q4_K_M) | 8.5 | OOM | OOM | OOM |
| CodeLlama 13B (Q4_K_M) | 32.1 | 22.8 | 18.6 | 5.7 |
# Install llama.cpp with Metal support brew install llama.cpp # Run benchmark with Llama 3 8B llama-bench -m llama-3-8b-q4_k_m.gguf -n 512 -ngl 99 # Interactive chat llama-cli -m llama-3-8b-q4_k_m.gguf \ -n 512 -ngl 99 --color \ -p "You are a helpful coding assistant."
Nota: El M4 Pro con 24GB de memoria unificada puede ejecutar modelos de hasta ~40B parámetros con cuantización de 4 bits. Para el modelo de 70B, necesitas la configuración de 48GB o 64GB. El Intel i9 con 32GB puede técnicamente ejecutar modelos de 7-13B pero a velocidades inutilizables debido a la falta de aceleración Metal GPU.
Rendimiento del SSD
La velocidad del SSD impacta directamente en la indexación de Xcode, los tiempos de apertura de proyectos, el arranque del Simulador y la resolución de dependencias. Medimos las velocidades de lectura/escritura secuencial usando dd y Disk Speed Test.
| Chip | Lectura Secuencial | Escritura Secuencial | Lectura Aleatoria 4K (IOPS) |
|---|---|---|---|
| M4 Pro | 7,400 MB/s | 6,200 MB/s | 1,200K |
| M4 | 6,800 MB/s | 5,100 MB/s | 1,050K |
| M2 Pro | 5,100 MB/s | 4,200 MB/s | 850K |
| Intel i9 | 2,800 MB/s | 2,300 MB/s | 350K |
# Quick SSD benchmark with dd # Write test dd if=/dev/zero of=./testfile bs=1G count=5 2>&1 | tail -1 # Read test (clear cache first) sudo purge dd if=./testfile of=/dev/null bs=1G count=5 2>&1 | tail -1 # Cleanup rm ./testfile
Rendimiento de Red
Todos los servidores de MyRemoteMac están conectados a través de redes de 10Gbps. Aquí están las velocidades de transferencia reales que medimos.
| Prueba | Velocidad | Notas |
|---|---|---|
| iperf3 (datacenter local) | 9,42 Gbps | Cerca de la velocidad del cable dentro del datacenter |
| Speedtest (internet) | 8,7 Gbps bajada / 8,2 Gbps subida | Hacia los principales puntos de peering europeos |
| git clone (repositorio grande, 2GB) | 14s | Desde GitHub, limitado por el ancho de banda de salida de GitHub |
| CocoaPods install (50 pods) | 28s | Incluyendo clones git y resolución de specs |
| Docker pull (imagen de 1GB) | 8s | Desde Docker Hub |
# Network benchmark commands
brew install iperf3
iperf3 -c speedtest-server.example.com -t 30
# Measure git clone speed
time git clone --depth 1 https://github.com/nicklockwood/SwiftFormat.git
# Test download speed
curl -o /dev/null -w "Speed: %{speed_download} bytes/sec\n" \
https://speed.hetzner.de/1GB.bin
Tabla Comparativa Completa
Todas las métricas lado a lado para una comparación fácil.
| Métrica | M4 Pro | M4 | M2 Pro | Intel i9 |
|---|---|---|---|---|
| Geekbench SC | 3,850 | 3,800 | 2,750 | 1,680 |
| Geekbench MC | 22,000 | 15,000 | 14,500 | 8,200 |
| Xcode Clean Build (500k LOC) | 4m 12s | 5m 45s | 7m 15s | 12m 30s |
| SPM Clean Build | 1m 50s | 2m 29s | 3m 07s | 6m 13s |
| Docker Build (no cache) | 42s | 58s | 1m 15s | 2m 38s |
| Llama 3 8B Inference | 48.2 tok/s | 35.6 tok/s | 28.4 tok/s | 8.1 tok/s |
| SSD Read | 7,400 MB/s | 6,800 MB/s | 5,100 MB/s | 2,800 MB/s |
| SSD Write | 6,200 MB/s | 5,100 MB/s | 4,200 MB/s | 2,300 MB/s |
| Power Consumption | ~45W peak | ~30W peak | ~40W peak | ~120W peak |
Qué Significa Esto para CI/CD
Un hardware más rápido se traduce directamente en pipelines de CI/CD más rápidos, ciclos de feedback más cortos para los desarrolladores y menores costes por compilación.
Ahorro de Tiempo en el Pipeline de Compilación
Un pipeline CI típico de iOS (checkout, compilación, test, archivo) que tardaba 25 minutos en Intel ahora se completa en menos de 10 minutos en M4 Pro.
# Typical CI pipeline timing (M4 Pro): # git checkout: 5s (vs 15s Intel) # pod install: 28s (vs 1m20s) # xcodebuild: 4m12s (vs 12m30s) # xcodebuild test: 3m15s (vs 8m40s) # archive: 2m30s (vs 6m15s) # Total: ~10m (vs ~29m Intel)
Comparación de Coste por Compilación
Asumiendo 100 compilaciones al mes a $75/mes para M4, comparado con runners macOS alojados en GitHub a $0,08/min.
# MyRemoteMac M4 Pro ($149/mo): # 100 builds x 10min = 1,000 min # Cost per build: $1.49 # GitHub-hosted macOS runner: # 100 builds x 25min = 2,500 min # Cost: 2,500 x $0.08 = $200/mo # Cost per build: $2.00 # Savings: 25% cheaper + 2.5x faster
Impacto en la Productividad del Desarrollador
Los estudios demuestran que los tiempos de compilación impactan directamente en el estado de flujo del desarrollador. Una compilación de 10 minutos significa que los desarrolladores cambian de contexto a otras tareas y pierden 15-20 minutos en total. Una compilación de 4 minutos mantiene a los desarrolladores en su flujo. Para un equipo de 5 desarrolladores haciendo 10 compilaciones/día cada uno, el M4 Pro ahorra aproximadamente 5 horas de tiempo de espera acumulado diariamente en comparación con el Intel i9.
Pruébalo Tú Mismo
Ejecuta estos benchmarks en tu propio servidor MyRemoteMac para ver los resultados de primera mano.
# Quick benchmark script for your MyRemoteMac server
#!/bin/bash
echo "=== System Info ==="
sysctl -n machdep.cpu.brand_string
sw_vers
echo ""
echo "=== Geekbench 6 ==="
echo "Download from: https://www.geekbench.com/download/"
echo ""
echo "=== SSD Benchmark ==="
echo "Write speed:"
dd if=/dev/zero of=./benchfile bs=1G count=2 2>&1 | tail -1
echo "Read speed:"
sudo purge 2>/dev/null
dd if=./benchfile of=/dev/null bs=1G count=2 2>&1 | tail -1
rm -f ./benchfile
echo ""
echo "=== Network Speed ==="
curl -o /dev/null -w "Download speed: %{speed_download} bytes/sec\n" \
https://speed.hetzner.de/100MB.bin 2>/dev/null
echo ""
echo "=== Xcode Version ==="
xcodebuild -version
echo ""
echo "Done! Compare your results with the benchmarks at"
echo "https://myremotemac.com/guides/mac-mini-m4-pro-benchmarks.html"