Una línea de código

jueves, el 22. octubre 2009, 15:35 por Inagotable

El corazón de la aplicación se centraba en un algoritmo que contenía dos bucles, uno dentro del otro. El primero de ellos tenía alrededor de 500 iteraciones y el segundo unas 200, lo que hacía un total de 100.000 vueltas que tardaban más de 8 horas en completarse (veía el resultado al día siguiente). Era obvio que se debía optimizar tanto como se pudiese.

Depurando la aplicación me percaté de una línea de código que realizaba una lectura de fichero en disco y se tomaba cerca de un segundo en realizar la tarea, lo que hacía de ella la más lenta de todas las líneas y situada precisamente dentro del segundo bucle (por lo que se ejecutaba 100.000 veces).

Razonando un poco conseguí modificar el algoritmo y dejé esa línea de código en el primer bucle, reduciendo notablemente el número de veces que se repetiría. Y así se convirtió en una aplicación que tardaba 10 minutos en vez de más de 8 horas.

Así que ya sabéis, los bucles de n² en adelante son perjudiciales para tu procesador y tu paciencia.

Escrito en: Informática | Etiquetas: Etiquetas: , , , ,
0 Trackbacks | 4 Comentarios »