Optimización prematura

Optimización prematura

En informática, el antipatrón de diseño la optimización prematura ocurre cuando un programador permite que las consideraciones de costo en tiempo o espacio afecten el diseño de un componente de software antes de tener un diseño correcto, lo que puede resultar en un diseño más complicado que lo necesario.

Un mejor enfoque es el de diseñar primero, luego codificar el diseño y finalmente tomar en cuenta las consideraciones de costo empíricas (perfiles de ejecución o medidas de tiempo/espacio) o formales (complejidad tiempo/espacio) para decidir en que partes se debe invertir tiempo para realizar optimizaciones. De todas formas, un diseño simple y elegante es más fácil de optimizar en su momento. Ocurre con frecuencia que las partes donde se puede ganar más al optimizar no son las que inicialmente se hubiera esperado, de manera que al optimizar prematuramente se complica el análisis del código.

En la práctica, muchas veces es necesario tomar en cuenta las consideraciones de costo desde el principio del diseño, sin embargo, el diseñador debe tratar de no confundir diseño y optimización.

Algunas veces se considera una buena práctica el eliminar comentarios, espaciado y operaciones no utilizadas antes de poner en uso aplicaciones escritas en lenguajes interpretados como PHP o JavaScript. En esos casos, es preferible utilizar una herramienta de despliegue que realice estas transformaciones en lugar de perder un fuente autodocumentado y de más fácil mantenimiento. Tampoco es buena idea mantener en paralelo la versión para despliegue y la versión con comentarios dado que se corre el peligro de que éstas versiones no se correspondan.

Nota histórica: La frase La optimización prematura es la raíz de todos los males viene de Donald Knuth, prominente investigador en informática.


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Optimización de software — Se ha sugerido que este artículo o sección sea fusionado con Optimización (cómputo) (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí. La optimización de software es una rama de la Ingeniería de… …   Wikipedia Español

  • Antipatrón de diseño — Saltar a navegación, búsqueda Un antipatrón de diseño es un patrón de diseño que invariablemente conduce a una mala solución para un problema. Al documentarse los antipatrones, además de los patrones de diseño, se dan argumentos a los diseñadores …   Wikipedia Español

  • Premature optimization — En Computación, el antipatrón de diseño Premature optimization o Optimización prematura ocurre cuando un programador permite que las consideraciones de costo en tiempo o espacio afecten el diseño de un componente de software antes de tener un… …   Enciclopedia Universal

  • Algoritmo genético — Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la… …   Wikipedia Español

  • Investigación de operaciones — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Computación evolutiva — La computación evolutiva es una rama de la inteligencia artificial que involucra problemas de optimización combinatoria. Se inspira en los mecanismos de la Evolución biológica. Contenido 1 Historia 2 Algoritmos evolutivos 3 Aspectos a considerar …   Wikipedia Español

  • GeForce — Tarjeta gráfica GeForce sin su sistema de enfriamiento. GeForce es la denominación que tienen las tarjetas gráficas que cuentan con unidades de procesamiento gráfico (GPU) desarrolladas por la empresa estadounidense NVIDIA. Su introducción en el… …   Wikipedia Español

  • Sound Blaster — Tarjeta Sound Blaster: Creative Labs Audigy 2 ZS. La familia Sound Blaster de tarjetas de sonido, ha sido durante muchos años el estándar de facto para el audio de los PC compatibles con IBM, antes de que el audio de PC se hiciera común. El… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”