Desenvolvedores de software equilibrar vários fatores ao criar aplicativos e sites. Nos primeiros dias , quando os computadores tiveram pouco armazenamento e recursos , tamanho e velocidade foram as principais preocupações. Hoje, com processadores multi-core e gigabytes de memória , complexidade e facilidade de manutenção , muitas vezes substituir o desempenho. Aqui estão alguns dos principais fatores a considerar ao escolher os algoritmos certos para o seu projeto. Instruções
1
Medir o desempenho . O primeiro fator que sempre vem à mente quando se mede um algoritmo é a velocidade. Ninguém quer esperar por software lento. Existem várias maneiras de determinar qual algoritmo irá executar melhor para a tarefa em mãos. Um algoritmo pode ser medido manualmente contando instruções, usando probabilidades para determinar caminhos de execução . Mais fácil ainda são profilers que contam ciclos de máquina como o código é executado.
2
Compare o tamanho do código . Apesar de não ser tão importante como o desempenho , o tamanho do código , por vezes faz -se um factor . Software incorporado e aplicativos móveis muitas vezes precisam compartilhar a memória limitada, e um código baseado em navegador , leva tempo para download. Às vezes, um pequeno sucesso no desempenho pode ser sacrificado para raspar uma quantidade significativa de código.
3
Determine o nível de complexidade. A maioria dos desenvolvedores de software comercial escrever código implantado em desktops ou servidores web com bastante poder de processamento e memória mais do que suficiente. Hoje, o maior desafio está na gestão da complexidade . A aplicação de negócio bastante simples muitas vezes pode ter em qualquer lugar de algumas dezenas a algumas centenas de módulos de código , cada um com várias centenas de linhas de código. Nestas aplicações, os melhores algoritmos são simples de entender e fácil de implementar . Para medir a complexidade, contar o número de pontos de decisão , chamadas de função , número de variáveis e da complexidade das estruturas de dados.
4
Compare manutenção. Intimamente associada com a complexidade é manutenção. Um algoritmo com menos complexidade , apresentado com bastante espaço em branco e generosamente polvilhado com comentários bem escritos , será muito mais fácil de modificar quando os requisitos mudam . A maioria dos desenvolvedores passam muito mais tempo manter e modificar o código existente do que eles a criação de um novo software .
5
Validar para correção. Muitas vezes esquecido em uma discussão de algoritmos é a necessidade de um algoritmo apropriado que atenda a todos os requisitos e funciona corretamente. O código deve retornar resultados precisos para as entradas , incluindo as condições de contorno e valores inesperados. Os filtros devem estar no local para rejeitar dados ruins , e código de tratamento de exceções deve responder a estouros numéricos, underflows , falhas de rede ou outras condições.
6
Escolha o algoritmo mais apropriado. A melhor opção equilibra todos esses fatores de uma forma que maximiza o desempenho e minimizar o custo de desenvolvimento e de propriedade.