Perdemos a Arte da Otimização Pura?
Os primeiros engenheiros trabalhavam com limites minúsculos. O Apollo Guidance Computer tinha apenas 2KB de RAM. Cada bit importava. Cada ciclo de CPU era vital.
Hoje, temos gigabytes de memória. Frequentemente resolvemos problemas adicionando mais hardware. Se o código está lento ou pesado, adicionamos mais RAM. Esse hábito nos faz perder a habilidade da otimização pura.
Você pode escrever softwares melhores pensando em restrições.
Veja como você processa um arquivo de texto grande em Python.
A maneira comum: Muitos desenvolvedores leem um arquivo inteiro na memória de uma só vez.
- Você usa
f.readlines(). - Isso carrega cada linha em uma lista na sua RAM.
- Se o seu arquivo tem 10GB, você precisa de 10GB de RAM.
- Essa abordagem falha em servidores pequenos ou dispositivos limitados.
A maneira otimizada: Processe o arquivo uma linha por vez.
- Você itera diretamente sobre o objeto do arquivo.
- O Python lê uma linha, a processa e passa para a próxima.
- O uso de memória permanece baixo e constante.
- Não importa se o arquivo tem 1MB ou 100GB.
A diferença é uma questão de filosofia de engenharia.
Adicionar mais recursos é uma solução temporária. Isso cria softwares frágeis. Usar restrições para guiar seu design cria softwares robustos.
Otimização não é apenas sobre velocidade. É sobre ser consciente dos seus recursos.
Ao escrever código, pergunte a si mesmo:
- Quanta memória isso utiliza?
- Isso funcionará se os dados crescerem dez vezes mais?
- Estou dependendo de hardware caro para esconder um código ruim?
Softwares melhores vêm da disciplina.
Fonte: https://dev.to/prabashanadev/have-we-lost-the-art-of-pure-optimization-31b9