Desarrolladores de software equilibrar muchos factores al crear aplicaciones y sitios web . En los primeros días , cuando los ordenadores tenían poca almacenamiento y recursos , el tamaño y la velocidad fueron las principales preocupaciones. Hoy en día, con los procesadores multi-núcleo y gigabytes de memoria, complejidad y capacidad de mantenimiento a menudo anular rendimiento. Éstos son algunos de los principales factores a considerar al elegir los algoritmos adecuados para su proyecto. Instrucciones
1
Medida de rendimiento . El primer factor que siempre viene a la mente cuando se mide un algoritmo es la velocidad. A nadie le gusta esperar a que el software lento. Hay varias formas de determinar qué algoritmo funcionará mejor para la tarea en cuestión. Un algoritmo se puede medir manualmente por instrucciones de conteo , el uso de probabilidades para determinar rutas de ejecución . Más fácil todavía son perfiladores que cuentan ciclos de máquina que ejecuta el código.
2
Comparar el tamaño del código . Aunque no es tan importante como el rendimiento , el tamaño del código a veces se convierte en un factor . El software integrado y aplicaciones móviles a menudo necesitan compartir memoria limitada y el código basado en el navegador necesita tiempo para descargar . A veces un pequeño golpe en el rendimiento puede ser sacrificada para afeitarse una cantidad significativa de código.
3
Determinar el nivel de complejidad . La mayoría de los desarrolladores de software comerciales escriben código implementado en equipos de sobremesa o servidores web con un montón de potencia de procesamiento y más de suficiente memoria. En la actualidad, el mayor desafío es la gestión de la complejidad. Una aplicación de negocios bastante simples a menudo puede tener desde unas pocas docenas a varios cientos de módulos de código , cada uno con varios cientos de líneas de código. En estas aplicaciones , los mejores algoritmos son fáciles de entender y fácil de implementar . Para medir la complejidad, contar el número de puntos de decisión , llamadas a funciones , el número de variables y la complejidad de las estructuras de datos .
4
Comparar mantenimiento. Estrechamente unido a la complejidad es el mantenimiento. Un algoritmo con menos complejidad , presentado con un montón de espacio en blanco y salpicada con comentarios bien escritos , será mucho más fácil de modificar cuando las necesidades cambian . La mayoría de los desarrolladores pasan mucho más tiempo el mantenimiento y la modificación del código existente que ellos la creación de un nuevo software.
5
Validar la corrección . A menudo pasado por alto en un análisis de algoritmos es la necesidad de un algoritmo apropiado que cumpla con todos los requisitos y funciona correctamente . El código debe devolver resultados exactos de los insumos , incluyendo las condiciones de contorno y valores inesperados. Los filtros deben estar en su lugar de rechazar los malos datos y el código de control de excepciones deben responder a desbordamientos numéricos, subdesbordamientos , fallos de la red y otras condiciones .
6
Elija el algoritmo más adecuado. La mejor opción equilibra todos estos factores de una manera que maximiza el rendimiento y minimizando el coste del desarrollo y la propiedad .