Se publica todo
También los resultados que no favorecen a la herramienta que preferimos.
Laboratorio
Mediciones propias, con su método, sus resultados y sus límites.
También los resultados que no favorecen a la herramienta que preferimos.
Versiones, equipo, carga y código, para que puedas repetir la prueba.
Una medición responde una pregunta concreta, no todas.
Comparamos Rust, Go, Node.js y Python con un microservicio HTTP, en un Mac con M4 Max.
| Servicio pequeño, 1 núcleo | Rust | Go | Node.js | Python |
|---|---|---|---|---|
| Capacidad máxima (pet/s) | 104 567 | 101 489 | 90 580 | 14 024 |
| Memoria (MB) | 4,7 | 15,5 | 65,9 | 38,5 |
| CPU a 2000 pet/s | 6,6 % | 8,0 % | 8,1 % | 34,5 % |
| Latencia p99 a 2000 pet/s (ms) | 1,72 | 1,27 | 1,27 | 3,64 |
Con un servicio pequeño, Rust gana en memoria y consumo, pero no en p99: Go y Node.js quedan por debajo.
| 5 millones de registros | Rust | Go | Node.js |
|---|---|---|---|
| Memoria real (MB) | 408 | 865 | 875 |
| p99 con 1 núcleo (ms) | 2,2 a 10,9 | 81 a 127 | 2,1 a 2,9 |
| p99 con 4 núcleos (ms) | 2,3 | 2,6 | n/a |
Con muchos datos en memoria, Node.js fue el más estable con un núcleo. Go sufrió con un núcleo, y casi igualó a Rust con cuatro.
Lo que esta prueba no dice: es un servicio de ejemplo en un equipo de escritorio, no tu sistema. Las cifras sirven para entender el método y repetirlo con tu carga real.
Ver el código, el método y el análisis completo. También puedes leer qué explican estas pausas.
Seguridad, eficiencia y oficio, con fuentes y en español.