Disons qu'il y a une fonction que j'ai besoin d'appeler des millions de fois. Les opérations arithmétiques effectuées par cette fonction ne sont pas si lourdes, donc la seule chose qui compte est la rapidité avec laquelle toutes les variables sont allouées. Nous supposons également que la variable est toujours allouée sur la pile. L'exemple de cas le plus simple:Optimisation de la fonction fréquemment appelée avec de grandes variables locales (C++)
void doSomething(){
int aReallyLargeVariable[10000];
...performing a few light operations on that variable and returning nothing...
}
Je sais que lorsque la fonction retourne toutes ses variables sont détruites, alors
serait-il pas mieux en le rendant statique ou global pour mettre en cache cette variable? Quel serait le meilleur moyen de l'optimiser?
Faire de la variable un paramètre de la fonction et utiliser la même variable pour de nombreux appels de fonction? – rozina
La fonction est appelée récursivement ou simultanément? –
Et - puisque vous êtes déjà au courant des conceptions alternatives, pouvez-vous partager vos résultats de référence sur les comparaisons que vous avez sûrement déjà exécuté? –