BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 3 Funciones: declaración y definición
Sugerencias de Rendimiento

El almacenamiento automático es una forma de conservar memoria, porque las variables automáticas existen sólo cuando son necesitadas. Son creadas al introducirse la función en la cual son declaradas, y son destruídas cuando se sale de dicha función.

El especificador de clase de almacenamiento register puede ser colocado antes de una declaración de variable automática, para sugerir que el compilador conserve la variable en uno de los registros de alta velocidad del hardware de la computadora. Si se pueden mantener en egistros de hardware las variables intensamente utilizadas como son contadores y totales, puede ser eliminada la sobrecarga correspondiente a cargar de forma repetida las variables de las memorias a los registros y almacenar los resultados de la vuelta en memoria.

A menudo son inecesarias las declaraciones register. Los compiladores optimizadores de hoy día son capaces de reconocer variables de uso frecuente, y pueden decidir colocarlos en registro, sin necesidad de una declaración register proveniente del programador.

Eviten programas recursivos del tipo fibonacci que resultan en una "explosión" exponencial de llamadas.

Evite el uso de recursión cuando se requiera de rendimiento. Las llamadas recursivas toman tiempo y consumen memoria adicional.

Un programa muy funcionalizado en comparación con un monolítico (es decir, de una pieza) sin funciones potencialmente hace grandes cantidades de llamadas de función y estas consumen tiempo de ejecución en el procesador de una computadora. Pero los programas monolíticos son difíciles de programar, probar, depurar, mantener y de modificar.

El polimorfismo, tal y como se pone en práctica mediante funciones virtuales y ligaduras dinámicas, resulta eficiente. Los programadores pueden utilizar estas capacidades con un impacto sólo nominal sobre el rendimiento del sistema.

Las funciones virtuales y las ligaduras dinámicas permiten la programación polimórfica, en contraste con la programación lógica switch. Los compiladores optimizantes de C++ por lo general generan código que se ejecuta con una eficiencia por lo menos igual a la de la lógica basada en switch codificada manualmente.

Evite reinventar la rueda. Siempre que sea posible, utilice funciones estandar de biblioteca ANSI C, en vez de escribir nuevas funciones. Esto reduce el tiempo de desarrollo del programa.