Optimizaciones en C++ |
Escrito por adrianvaca | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Domingo, 20 de Marzo de 2011 19:15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Estas optimizaciones son fácilmente aplicables a código existente y en algunos casos aceleran notablemente la velocidad con que nuestros programas se ejecutan. Recuerden sin embargo lo siguiente: el código más rápido es aquel que no es llamado.
en lugar de
Sin listas de inicialización, el contructor por defecto es llamado detrás de la escena en lugar del contructor de la clase. Optimización para ciclos Cuando sea posible, usa ciclos que vayan contando hacia abajo, por ejemplo usa:
en lugar de:
Es más rápido cuando se compara contra cero que contra cualquier otro valor. Nota también que:
es más rápido que:
Usa 'int' Siempre usa el tipo de dato int en lugar de char o short cuando sea posible. int es siempre el tipo de dato nativo de la máquina Haz las funciones locales estáticas (static) Siempre declara las funciones locales como estáticas, usa static, por ejemplo:
Esto quiere decir que la función no será visible a funciones fuera del archivo .cpp donde se usa, y algunos compiladores C++ pueden tomar ventaja de esta optimización. Optimiza las sentencias if Factor del salto. Por ejemplo usa:
en lugar de:
Usa tu buen juicio para ver si la operación undo es más rápida! Optimiza las sentencias switch Pon los casos más comunes al inicio Evita las operaciones excesivas La suma es más rápida que la multiplicación y la multiplicación es más rápida que la división. Inicializar en la declaración Cuando sea posible inicializa las variables cuando las declaras, por ejemplo:
es más rápido que:
Declarar y luego inicializar invoca el contructor por defecto y luego hacer una signación son 2 operaciones. Inicializar en la declaración invoca sólo el contructor copia. Paso por referencia Siempre trata de pasar clases por referencia en lugar de hacerlo por valor, por ejemplo usa:
en lugar de:
Uso de operadores Usa:
en lugar de:
La primera versión es mejor que la segunda porque se evita la necesidad de crear un objeto temporal. Has las funciones pequeñas de tipo inline Las funciones pequeñas deberían ser declaradas inline para mejorar el rendimiento, por ejemplo:
Cuando se trata de funciones largas, no se debe declararlas "inline" Usa clases sin nombre Cuando sea posible usa clases sin nombre, por ejemplo:
es más rápido que:
porque en el primer caso, el parámetro y la clase comparten memoria |
Otros artículos | |