¿donde se aloja el código de las funciones que se van creando?
Antes o después del código del progama.
Cuando se llama a una función, lo que se hace es guardar la dirreción actual y dar un "salto" hacia la dirreción donde está el código de la función, cuando termina vuelve a dar otro salto hacia la dirreción anterior.
Otro tema aparte, son las funciones inline de C++. Son funciones muy cortas y que van precedidas con el modificador "inline", lo que hace el compilador ahí es copiar y pegar el código en todas las llamadas que haya. Así gana un poquito de eficiencia ya que no hay que hacer ningún salto ni nada.
En C++ 11, ¿las funciones lambda se alojan en algún sitio distinto de las funciones normales?
Normalmente es una función normal y corriente.
Investigando por ahí, he leído que hay que intentar declarar static todas las funciones locales. ¿Se refiere a las funciones que están en el main? ¿Quá pasa con las funciones static, van a zona de memoria distinta de las no static?
Static sirve para que esa función no sea accesible desde fuera de ese fichero. Se usa en programas multi-archivo.
Más que optimización será por
encapsulamiento, aunque no descarto que el compilador pueda hacer alguna optimización (más restricciones, significa mayor libertad para optimizar).
En las funciones que se encuentran en una
clase, el static tiene una función totalmente diferente. No confundir
PD. Me interesa mucho saber directrices para optimizar al máximo el rendimiento del programa, como saber que hay que hacer las mínimas comparaciones posibles.
Agradeceré cualquier link con información, y como siempre, si es en español, mas todavía.
Saludos.
Los compiladores de hoy en día son muy buenos, y algunas cosas ya las hace si activas el "modo optimización" en las opciones del compilador.
Lo que más se nota es en usar un algoritmo eficiente o poco eficiente.
Una busqueda secuencial en una lista de 1.000.000 elementos, necesitas hacer 1.000.000 iteraciones (como máximo) para encontrar un determinado.
Una busqueda binaria no pasa de 20 iteraciones. Y en el caso de ser palabras de un diccionario, podrías usar un algoritmo de prefijo y encontrar una palabra de 4 letras en 4 iteraciones.
Pasar de 1.000.000 de iteraciones a 4 teraciones es una brutalidad.