Benchmark 2025: Rust vs C++, Go y Python — ¿quién manda?
2025 fue un año decisivo para los lenguajes de programación de sistemas. Rust, que hasta hace poco era percibido como un "novato de moda", se ha consolidado no solo en el desarrollo de infraestructura, sino también en servicios web de alta carga, utilidades CLI y sistemas embebidos. Realizamos una serie de benchmarks comparando Rust con sus principales competidores: C++, Go y Python. Los resultados fueron sorprendentes incluso para desarrolladores experimentados.
Metodología de prueba
Las pruebas se realizaron en hardware idéntico (AMD Ryzen 9 7950X, 64 GB DDR5, NVMe SSD). Para cada lenguaje se utilizaron compiladores y runtimes actualizados:
- Rust — rustc 1.80.0, flags de optimización
-C opt-level=3 - C++ — Clang 18, flags
-O3 -march=native - Go — Go 1.23, compilación sin símbolos de depuración
- Python — CPython 3.13, PyPy 7.3 (para comparación)
Se midieron tres métricas clave: velocidad de ejecución (tiempo, ms), consumo de memoria (RSS, MB) y rendimiento (solicitudes/seg para el servidor web).
Resultados de las pruebas
1. Tareas computacionales (Fibonacci, ordenamiento, criptografía)
- Rust: 12.3 ms, 2.1 MB
- C++: 11.8 ms, 2.3 MB
- Go: 19.7 ms, 4.8 MB
- Python (PyPy): 145.2 ms, 38.1 MB
- Python (CPython): 820.4 ms, 42.5 MB
Conclusión: Rust prácticamente alcanzó a C++ en rendimiento puro (menos del 5% de diferencia), pero utiliza un 10% menos de memoria. Go pierde por un factor de 1.6, mientras que Python pierde por un factor de 11 a 66.
2. Servidor web (HTTP/1.1, 10 000 conexiones, respuesta JSON)
- Rust (Actix-web): 215 000 req/s, 14.2 MB
- Go (net/http): 178 000 req/s, 19.8 MB
- C++ (Crow): 209 000 req/s, 15.1 MB
- Python (FastAPI + uvicorn): 28 000 req/s, 52.3 MB
Conclusión: Rust no solo es más rápido que Go, sino que es un 20% más eficiente en rendimiento y un 30% más económico en memoria. C++ con Crow va casi a la par con Rust.
3. Trabajo con sistema de archivos (lectura de 1 millón de líneas desde CSV)
- Rust: 0.87 seg, 5.3 MB
- C++: 0.91 seg, 5.8 MB
- Go: 1.42 seg, 9.1 MB
- Python (pandas): 4.21 seg, 127 MB
Conclusión: En tareas de entrada/salida, Rust pierde mínimamente frente a C++, pero supera significativamente a Go y Python.