Le premier argument qu’il cite est que la performance et l’efficacité sont deux choses différentes. En effet, selon ses explications : la performance s’intéresse à la vitesse d’exécution d’une certaine tâche, alors que l’efficacité s’intéresse au temps qu’il faut pour la réaliser. « À première vue, cela peut sembler pareil » déclare-t-il, « mais ce n’est pas le cas. Imaginez que vous devez aller d'un point A à un point B. l’efficacité signifie que vous allez prendre le plus court chemin. La performance signifie que vous allez courir au lieu de marcher ».
Pour lui, il suffit parfois de rendre le code « plus efficace pour obtenir la vitesse souhaitée sans avoir à se soucier des détails de performances », le tout en gardant à l’esprit que la majeure partie du code « ne s’avère pas vital pour la performance globale du programme » et donc son optimisation est inutile.
Mais pourquoi alors la performance n’est pas si importante que cela pour l’auteur du blog ? Tout simplement parce que selon lui « nous ne savons pas vraiment comment écrire du code performant ». Pour appuyer son argument, il explique que le facteur essentiel pour la performance réside dans le nombre d’instructions que le processeur doit exécuter, et ceux-ci « ne sont pas écrit par nous, mais plutôt par le compilateur et son optimiseur », en d’autres termes : « si nous avons vraiment à nous soucier de la performance, nous ne pouvons pas compter sur notre imagination ou sur l'expérience, nous devons utiliser un outil » par exemple « utiliser un profileur ».
Le plus important selon lui c’est d’écrire un code lisible, maintenable et aussi simple que possible. Toutefois, « si vous avez réellement un problème de performance et l'avez localisé, il y a encore de nombreuses options qui sont plus prometteuses que de transformer votre code en un désordre performant, mais complètement illisible », il suffit par exemple de :
- Utiliser les structures de données les plus performantes possible
- Connaître et utiliser des bibliothèques de code performantes
- Toujours utiliser un profileur
Source : Simplify C++ !
Et vous ?
Êtes-vous d’accord avec l’avis de l’auteur du blog ?
Peut-on avoir un code qui soit à la fois efficace, lisible, et performant ?