Artículo sobre Optimización en Software

En este artículo el autor (Shlomi Fish) discute un poco sobre optimización de algoritmos, y está orientado bastante a lo pragmático, desmitificando (o intentando derribar) algunos viejos «axiomas» de la programación.

Para mí fue muy interesante la introducción de la idea de que optimizar factores constantes en la complejidad de un algoritmo también sirve; es decir, no sólo reducir órdenes de magnitud como único objetivo al optimizar, sino que también es importante hacerlo en factores. Con lo cual tiende a derribar dentro de su criterio el mito de «O(N²) es igual a O(2N²)», por ejemplo.

Finalmente, dispara un montón de links para otros lados también muy interesantes… en fin, aprendí un montón. 🙂

Es lectura para un día lluvioso, ideal para revoleárselo a pibes que hacen Programación II en una facultad.

http://www.shlomifish.org/philosophy/computers/optimizing-code-for-speed/

Saludos
Marcelo
PD: Es más, veo que el sitio mismo del autor tiene bastantes artículos similares sobre computación… será cuestión de agendar el sitio y leerlo de a poco.
PD2: Ignacio: habla de lo «malo» y lo «bueno» que puede llegar a ser el inlining de funciones, vos que sos un defensor tan acérrimo 😛 . También habla de la pobre performance de algunas llamadas de la Glib, cosa que vos también nos demostraste en su momento con el Quicksort.


Comentarios

Una respuesta a «Artículo sobre Optimización en Software»

  1. Avatar de Ignacio

    Si, estoy de acuerdo con lo que dice sobre las funciones inline (el tradeof de performance vs. uso de cache) pero mas que nada me quedo con esta frase (que en realidad se aplica a cualquier tipo de optimización):

    «If you are unsure whether inlining a certain function has a positive or negative effect, then benchmark and see.»

    PD: ya me suscribí 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *