Est-ce que l'accès const
plus rapidement que les variables non const
variable ? Je me demande si cela vaut la peine d'utiliser const
plutôt comme une étape dans l'optimisation d'un programme.
Réponses
Trop de publicités?Si la valeur est un constante de compilation (par exemple numéros , enum
, const
valeurs , constexpr
parfois en c++11 et ainsi de suite), alors oui ils peut être L'accès est plus rapide que pour les autres variables. Elles peuvent même être placées dans le segment de code.
Cependant, ce n'est pas vrai pour tout const
:
const int x = 5; // can be faster
const int c = foo(); // normal non-modfiable variable, normal speed
Dans l'exemple, vous pouvez voir que, toutes les variables non modifiables ne sont pas constantes de compilation.
La réponse à votre question est peut-être.
Comme l'a souligné Bjorn, cette question ne peut être résolue que par une analyse comparative minutieuse, car il existe trop de raisons spécifiques à l'architecture pour lesquelles la réponse peut être positive ou négative.
Voici un StackOverflow référence en matière de benchmarking :
Si vous travaillez sur un projet où la vitesse est importante, la seule façon de savoir réellement ce que fait le compilateur et comment il influe sur la vitesse est de lire l'assemblage généré et d'effectuer un benchmarking minutieux. Théoriser sur ce que le compilateur pourrait faire n'est pas productif. Si vous travaillez sur un système embarqué, un oscilloscope est un excellent moyen de chronométrer les choses. Sur les machines disposant de plus de ressources, un minuteur haute résolution fourni par le système d'exploitation est utile.