📊 Performance - Análise Técnica¶
Análise detalhada da performance do B-FAST e comparações com outras soluções de serialização.
🚀 Resultados de Benchmark¶
⚡ Território Sub-Microssegundo (100 Objetos)¶
- Encode (100 objetos): 676 ns (> 1.470.000 ops/s) — 🚀 2.1x mais rápido
- Decode (100 objetos): 754 ns (> 1.320.000 ops/s) — 🚀 2.6x mais rápido
Objetos Simples (10.000)¶
| Formato | Tempo (ms) | Speedup |
|---|---|---|
| JSON | 12.0ms | 1.0x |
| orjson | 8.19ms | 1.5x |
| B-FAST | 2.01ms | 🚀 6.0x |
B-FAST é 4.1x mais rápido que orjson!
🌊 Protocolo de Streaming (1.000 frames)¶
| Métrica | Performance | Speedup / Throughput |
|---|---|---|
| Streaming Decode (Alinhado) | 0.31ms (314µs) | ~3.180.000 frames/s |
| Streaming Decode (Fragmentado) | 0.32ms (322µs) | ~3.100.000 frames/s |
| Latência por Frame Único | 2.0ns | Parsing instantâneo sem alocação |
| Throughput Sustentado de Stream | > 3.100.000 frames/s | 145x mais rápido que NDJSON |
🚀 Ultra-baixa latência para IPC, WebSockets, feeds de IA e streaming de eventos!
🔄 Testes Round-Trip¶
Incluindo serialização + transferência de rede + deserialização (10.000 objetos):
📡 100 Mbps (Rede Lenta)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 114.5ms | 0.8x |
| orjson | 91.7ms | 1.0x |
| B-FAST + LZ4 | 16.1ms | 🚀 5.7x |
🎯 B-FAST é 5.7x mais rápido em redes lentas!
📡 1 Gbps (Rede Rápida)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 29.4ms | 0.5x |
| orjson | 15.3ms | 1.0x |
| B-FAST + LZ4 | 7.2ms | 🚀 2.1x |
🎯 B-FAST é 2.1x mais rápido mesmo em redes rápidas!
📡 10 Gbps (Rede Ultra-Rápida)¶
| Formato | Tempo Total | Speedup vs orjson |
|---|---|---|
| JSON | 20.9ms | 0.4x |
| orjson | 7.7ms | 1.0x |
| B-FAST + LZ4 | 6.3ms | 🚀 1.2x |
🎯 B-FAST permanece competitivo mesmo em redes ultra-rápidas!
🧮 Arrays NumPy¶
Teste especial para dados científicos (8MB):
| Formato | Tempo (ms) | Speedup |
|---|---|---|
| JSON | 318.21ms | 1.0x |
| orjson | 46.34ms | 6.9x |
| B-FAST | 3.29ms | 🚀 96x |
🚀 B-FAST é 14x mais rápido que orjson! 🚀 B-FAST é 96x mais rápido que JSON!
🎯 Quando Usar B-FAST¶
✅ B-FAST Excele Quando:¶
- Largura de banda é limitada (mobile, IoT) - 5.7x mais rápido
- Objetos simples - 4.1x mais rápido que orjson
- Streaming em tempo real - > 12.500 frames/s com decode instantâneo
- Arrays NumPy estão envolvidos (ML, ciência de dados) - 14-96x mais rápido
- Eficiência de armazenamento é importante - 89% de compressão
- Grandes datasets - Até 5.7x mais rápido em redes lentas
⚠️ Considerar Alternativas Quando:¶
- Redes ultra-rápidas (10+ Gbps internas) - diferença marginal
- Compatibilidade de ecossistema é crítica - JSON ainda é padrão
- Payloads muito pequenos (< 1KB) - overhead de compressão
📈 Características de Performance¶
Escalabilidade Linear¶
A performance do B-FAST escala linearmente com o tamanho dos dados:
- 100 objetos: ~6.8 ns por objeto (676 ns total encode)
- 1.000 objetos: ~60 ns por objeto (60.1 µs total encode)
- 10.000 objetos: ~230 ns por objeto (2.30 ms total encode)
Eficiência de Memória¶
- Arrays NumPy zero-copy
- Operações de memória alinhadas ao cache
- Compressão eficiente com LZ4
🔬 Otimizações Técnicas¶
Núcleo Nativo em Rust¶
- Execução binária nativa compilada com PyO3
- Inspeção rápida de tipos e serialização direta em buffers
- Suporte nativo a Pydantic & DataFrames sem conversões intermediárias
Compressão¶
- LZ4 integrado
- Descompressão rápida no lado do cliente
- Sem dependências externas necessárias
🌐 Análise de Rede¶
A vantagem do B-FAST aumenta conforme a velocidade da rede diminui:
| Velocidade da Rede | Vantagem do B-FAST |
|---|---|
| 100 Mbps | 5.7x mais rápido que orjson |
| 1 Gbps | 2.1x mais rápido que orjson |
| 10 Gbps | 1.2x mais rápido que orjson |
📊 Metodologia de Benchmark¶
Ambiente de Teste¶
- Dados: 10.000 objetos Pydantic complexos
- Iterações: Múltiplas execuções com warmup
- Rede: Tempos de transferência simulados
Estrutura de Dados de Teste¶
Abordagem de Medição¶
- Serialização pura: Apenas tempo de CPU
- Round-trip: Serializar + transferência de rede + deserializar
- Simulação de rede: Cálculos realistas de largura de banda
- Análise estatística: Média de múltiplas execuções
🎯 Conclusão¶
O B-FAST atinge seu objetivo de design de ser a escolha ideal para ambientes com restrição de largura de banda, mantendo performance competitiva de CPU. A redução de 89% no payload combinada com 1.7x de speedup na serialização o torna ideal para aplicações mobile, IoT e intensivas em dados.
📚 Próximos Passos¶
- Solução de Problemas - Guia de troubleshooting
- Frontend - Integração TypeScript
- Início - Voltar ao início