Esta es una buena pregunta.
Por lo general, la mejor práctica es 1) simplemente escriba el código para hacer lo que necesita, 2) luego trate el rendimiento, pero solo si es un problema. Si el programa es "lo suficientemente rápido", no es un problema.
Si el programa no es lo suficientemente rápido (como lo hace esperar), intente ajustar el rendimiento. La optimización del rendimiento no es como la programación. En la programación, piensas primero y luego haces algo. En la optimización del rendimiento, pensar primero es un error, porque eso es adivinando.
No adivine qué arreglar; diagnosticar lo que el programa está haciendo. Todo el mundo lo sabe, pero sobre todo lo hacen de todos modos. Es natural decir "Podría ser el problema es X, Y o Z", pero solo el novato actúa en las suposiciones. El profesional dice "pero probablemente estoy equivocado".
Existen diferentes formas de diagnosticar problemas de rendimiento.
Lo más simple es simplemente pasar por un solo paso a través del programa en el nivel de lenguaje ensamblador, y no tomar ningún atajo. De esa manera, si el programa está haciendo cosas innecesarias, entonces están haciendo las mismas cosas, y será dolorosamente obvio.
Otra es obtener una herramienta de creación de perfiles, y como otros dicen, medir, medir, medir.
Personalmente no me importa medir. Creo que es un microscopio difuso con el propósito de detectar problemas de rendimiento. Prefiero this method y this is an example of its use.
Buena suerte.
AGREGADO: creo que encontrará, si realiza este ejercicio varias veces, aprenderá qué prácticas de codificación tienden a generar problemas de rendimiento y las evitará instintivamente. (Esto es sutilmente diferente de la "optimización prematura", que supone al principio que debe preocuparse por el rendimiento. De hecho, probablemente sepa, si no lo sabe ya, que la preocupación prematura por el rendimiento puede causar la problema que trata de evitar.)
Le sugiero que reduzca el alcance de su pregunta. En este momento, la respuesta podría ser copiar y pegar el artículo de Wikipedia sobre el tema, porque es muy amplio. –
¿No está publicando un enlace a Wikipedia una respuesta bastante buena a la pregunta, entonces? –
@Kinopiko: se desalientan las respuestas que consisten únicamente en un enlace externo. Consulte http://meta.stackexchange.com/questions/26100/some-people-just-do-not-know-how-to-search –