Una cosa que he aprendido, bien por lecturas bien por experiencia propia, es optimizar cuando ya está el programa terminado y no antes. La razón es simple: hasta que no se termina el programa no puedes saber cómo afectará una optimización concreta al conjunto del programa. Por ejemplo, puedes optimizar una función al principio y, cuando el programa está terminado, resulta que esa función representa sólo un 1% del trabajo que realiza el programa o que necesita muy poca memoria, por lo que poco se notará si está o no optimizada.
El proceso es simple, basta con buscar aquellas funciones que más tiempo/trabajo realicen en el programa completo o que mayores necesidades de memoria tienen (los programas denominados "profilers" pueden ayudar mucho en esto) y optimizar aquellas que se ejecuten más veces o durante más tiempo o que necesiten más memoria.
|