Optima PS2
Reescrevemos e otimizamos 12 rotinas de missão crítica no coração do mercado de capitais brasileiro. O tempo médio de execução caiu 56%, sem comprar um servidor a mais.
As 11 rotinas medidas em produção, somadas. Compare o tempo que elas ocupavam com o tempo que ocupam hoje.
Medição em ambiente produtivo, ciclo a ciclo. Uma 12ª rotina foi tratada para estabilizar o tempo de execução: ali o ganho não foi de média, foi de previsibilidade.
de redução média no tempo de execução
de janela devolvida a cada ciclo completo
rotinas críticas otimizadas em produção
de redução na rotina de maior ganho
Quando o volume cresce e o relógio não, cada hora de processamento vira risco: relatório que atrasa, rotina dependente que não roda, time operacional em alerta na madrugada.
Rotinas críticas ocupavam de 3 a 5 horas dentro de uma janela que não pode crescer.
A execução variava muito de um dia para outro, o que dificultava o planejamento operacional.
A saída fácil era comprar mais capacidade. A pergunta era: dá para ganhar performance antes disso?
Priorizamos pelo que doía mais, tempo consumido vezes criticidade, e tratamos cada rotina como um projeto pequeno, com medição antes e depois.
Levantamento do tempo real de cada rotina e ordenação por impacto na janela.
Migração de Java para Python, com performance como requisito, não como consequência.
Revisão de consultas, redução de I/O e eliminação de etapas redundantes no tratamento de dados.
Comparativo em produção e ajuste fino onde o problema era variação, não média.
Os maiores ganhos vieram de rotinas que ninguém questionava havia anos.
| Rotina | Antes | Depois | Ganho |
|---|
Base: 11 rotinas com medição em produção, mais 1 rotina tratada para estabilização de runtime. Ganho apurado por ciclo de execução.
Tempo de execução é o indicador. O que muda de verdade é o que a operação passa a fazer com a folga que apareceu.
Menos chance de estouro de janela e de efeito dominó em rotinas dependentes.
Mais throughput no mesmo parque. O investimento em infraestrutura foi adiado, não antecipado.
Runtime estável é o que permite planejar a madrugada com confiança.
O padrão de diagnóstico, reescrita e medição fica instalado para as próximas rotinas.
A primeira entrega não foi código: foi o mapa de quanto tempo cada rotina realmente consumia. Sem baseline, ganho vira opinião.
Rotinas rodando havia anos concentravam os maiores ganhos justamente porque ninguém as revisitava. A rotina de 5h19 virou 43 minutos.
Em parte dos casos o problema não era o tempo médio, e sim a oscilação. Estabilizar valeu tanto quanto acelerar.
Na maioria dos ambientes que analisamos, entre 20% e 40% do tempo de processamento está em rotinas que ninguém revisita há anos. O diagnóstico é rápido, e o ganho quase sempre é maior do que se imagina.