12 votes

rapidité d'accès aux variables constantes en c/c++

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.

16voto

iammilind Points 29275

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.

5voto

Hucker Points 152

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X