Benchmark 2025: Rust contra C++, Go e Python — quem domina o jogo?
2025 foi um ano decisivo para as linguagens de programação de sistemas. Rust, que até recentemente era visto como um "novato da moda", conquistou com confiança seu espaço não apenas no desenvolvimento de infraestrutura, mas também em serviços web de alta carga, utilitários CLI e sistemas embarcados. Realizamos uma série de benchmarks, comparando Rust com seus principais concorrentes: C++, Go e Python. Os resultados surpreenderam até mesmo desenvolvedores experientes.
Metodologia de teste
Os testes foram realizados em hardware idêntico (AMD Ryzen 9 7950X, 64 GB DDR5, NVMe SSD). Para cada linguagem, foram utilizados compiladores e runtimes atuais:
- Rust — rustc 1.80.0, flags de otimização
-C opt-level=3 - C++ — Clang 18, flags
-O3 -march=native - Go — Go 1.23, compilação sem símbolos de depuração
- Python — CPython 3.13, PyPy 7.3 (para comparação)
Três métricas principais foram medidas: velocidade de execução (tempo, ms), consumo de memória (RSS, MB) e throughput (requisições/seg para o servidor web).
Resultados dos testes
1. Tarefas computacionais (Fibonacci, ordenação, criptografia)
- 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
Conclusão: Rust praticamente alcançou C++ em desempenho puro (diferença inferior a 5%), mas usa 10% menos memória. Go perde por um fator de 1.6x, enquanto Python perde por 11-66x.
2. Servidor web (HTTP/1.1, 10.000 conexões, resposta 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
Conclusão: Rust não é apenas mais rápido que Go — é 20% mais eficiente em throughput e 30% mais econômico em memória. C++ com Crow fica quase no mesmo nível do Rust.
3. Operações com sistema de arquivos (leitura de 1 milhão de linhas de um 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
Conclusão: Em tarefas de I/O, Rust perde minimamente para C++, mas supera significativamente Go e Python.