-
Regla 1.
No se puede saber dónde dedicará su tiempo un programa. Los cuellos de botella ocurren en lugares sorprendentes, así que no intente adivinar y hacer un truco de velocidad hasta que haya demostrado que ahí es dónde está el cuello de botella.
-
Regla 2.
Mide. No intentes optimizar la velocidad hasta que hayas medido, e incluso entonces no lo haga a menos que una parte del código domine al resto.
-
Regla 3.
Los algoritmos sofisticados son lentos cuando
nes pequeño ynsuele ser pequeño. Los algoritmos sofisticados tienen grandes constantes. Hasta que se sepa quénfrecuentemente será grande, no te pongas listillo. (Incluso sines grande, use la Regla 2 primero). -
Regla 4.
Los algoritmos sofisticados tienen más errores que los simples y son mucho más difíciles de implementar. Utilice tanto algoritmos simples como estructuras de datos simples.
-
Regla 5.
Los datos dominan. Si ha elegido las estructuras de datos correctas y ha organizado bien las cosas, los algoritmos casi siempre serán evidentes. Las estructuras de datos, no los algoritmos, son fundamentales para la programación.
Original en http://users.ece.utexas.edu/~adnan/pike.html