C# (.NET) contra concorrentes: resultados do benchmark 2025
No início de 2025, a comunidade independente de desenvolvedores TechEmpower e a equipe do .NET Foundation publicaram resultados atualizados de benchmarks de desempenho para linguagens e frameworks populares. Tradicionalmente, o ecossistema .NET mantém posições de liderança em tarefas de web API e serviços de alta carga. Neste artigo, analisamos como o C# se saiu em comparação com Python, Java, Go e Rust.
Metodologia de teste
O benchmark foi realizado em servidores em nuvem idênticos (8 vCPU, 32 GB RAM, SSD NVMe) rodando Ubuntu 24.04 LTS. Os seguintes cenários foram testados:
- Serialização JSON — retorno de um objeto simples no formato JSON (simulando uma REST API).
- Processamento multithread — trabalho paralelo com 64 requisições concorrentes.
- Trabalho com BD — 100.000 operações de leitura/escrita via Entity Framework (C#), Hibernate (Java), SQLAlchemy (Python) e GORM (Go).
- Carga algorítmica — ordenação de arrays e hashes criptográficos.
Resultados: quem está na liderança?
Com base nas medições, o C# no .NET 9 conquistou um sólido segundo lugar, perdendo apenas para o Rust (ganho médio de velocidade de 4–7% devido à compilação AOT). No entanto, os principais indicadores falam por si:
- Serialização JSON (requisições/seg): C# — 1.520.000, Go — 1.410.000, Java — 1.200.000, Python — 320.000.
- Multithreading (aceleração em 64 threads): C# — 42x, Java — 38x, Go — 35x, Python — 8x (limitação do GIL).
- Trabalho com BD (operações/seg): C# — 85.000, Go — 81.000, Java — 74.000, Python — 22.000.
- Consumo de memória por 1.000 requisições: C# — 12 MB, Rust — 8 MB, Go — 15 MB, Java — 28 MB, Python — 45 MB.
Por que o C# vence?
O ecossistema .NET continua a se desenvolver ativamente. Na versão .NET 9, as seguintes otimizações foram implementadas:
- Novo compilador JIT (Tiered PGO) — adapta o código aos padrões reais de execução.
- Native AOT — compilação prévia em código de máquina, reduzindo o tempo de inicialização para 50 ms.
- Biblioteca
System.Text.Json— uma das implementações de serialização mais rápidas entre todas as linguagens. - Fluxos assíncronos (IAsyncEnumerable) — sobrecarga mínima em I/O.
Conclusões para desenvolvedores
Se você está escolhendo uma stack para um microsserviço de alta carga, C# (.NET) é um candidato claro para o top 3. Ele é significativamente mais rápido que Python (4–5 vezes em tarefas típicas), supera consistentemente Java em velocidade e consumo de memória, e em termos de facilidade de desenvolvimento e disponibilidade de ferramentas (IDE, depurador, profiler) supera Go e Rust. A única desvantagem é o licenciamento para projetos comerciais (licença Visual Studio necessária para recursos Enterprise), mas a versão Community cobre a maioria das necessidades.