Mi función se llamará miles de veces. Si quiero hacerlo más rápido, ¿será útil cambiar las variables de la función local a estática? Mi lógica detrás de esto es que, dado que las variables estáticas son persistentes entre las llamadas a funciones, se asignan solo la primera vez y, por lo tanto, cada llamada posterior no asignará memoria a ellas y se volverá más rápida, porque el paso de asignación de memoria no está hecho.En C, ¿el uso de variables estáticas en una función lo hace más rápido?
Además, si lo anterior es cierto, ¿sería más rápido usar las variables globales en lugar de los parámetros para pasar información a la función cada vez que se llama? Creo que también se asigna espacio para los parámetros en cada llamada de función, para permitir la recursión (es por eso que la recursividad consume más memoria), pero dado que mi función no es recursiva, y si mi razonamiento es correcto, en teoría, quitar los parámetros creará más rápido
Sé que estas cosas que quiero hacer son horribles hábitos de programación, pero por favor, dígame si es sabio. Voy a intentarlo de todos modos, pero por favor dame tu opinión.
No optimice el código ANTES de la creación de perfiles! ... –
http://stackoverflow.com/questions/3730000/can-static-local-variables-salida-de-la-memoria-alcance-hora – jamesdlin
Hacer en general mal cosas para lograr aceleraciones apenas marginales para una función llamada miles de veces es una muy mala idea. Si puede ahorrar tal vez 10ns por llamada de funciones para una función llamada miles de veces ... ha guardado un múltiplo de 10 microsegundos, lo cual es trivial, a menos que esté trabajando en un sistema duro en tiempo real y tenga un problema crítico con el tiempo rebanando. –