A otimização de software é um dos tópicos mais mal-entendidos pelos profissionais de TI. Muitos pensam que a performace só deve ser levada em consideração ao final do desenvolvimento, devido a uma máxima conhecida por muitos "premature optimization is the root of all evil", em tradução livre "otimização prematura é a raiz de todos os males". Este dizer é mal-interpretado por muitos como: todas as considerações de performace devem ser feitas apenas ao final do desenvolvimento. É mesmo? Problemas de performance podem e devem ser previstos durante a fase de projeto, como tudo em software, quando mais cedo o problema é encontrado, mais barato é a solução.
O mal entendido
O dizer “otimização prematura é a raiz de todos os males” de Donald Knuth está incompleto. A forma completa é “We should forget about small efficiencies, say about 97% of the time, premature optimization is the root of all evil.”, em tradução livre “Devemos esquecer as pequenas eficiências, digamos 97% do tempo, otimização prematura é a raiz de todos os males.” Donald Knuth estava falando da micro-otimização do código, não fornecendo um passe livre para métodos ineficientes.
Outro ponto a ser considerado, é a época na qual Donald Knuth fez a sua declaração. Naqueles idos tempos, otimização normalmente consistia em ficar contando ciclos de CPU gastos em cada instrução. Com certeza, esse tipo de preocupação não é adequada no momento do projeto do sistema. Ele não estava falando da escolha do algoritmo, estruturas de dados, uso adequado de loops, etc..
Read the rest of this entry »
Comment