Analyse des performances
Pour un programme traitant de grandes quantités de données, quelle amélioration a le plus de chances d'apporter la plus forte accélération ?
- ARaccourcir les noms de variables
- BRemplacer un algorithme de complexité n² par un algorithme en n log n
- CSupprimer les commentaires
Afficher la réponse et l'explication
Réponse : B. Remplacer un algorithme de complexité n² par un algorithme en n log n
Pour n = 1 million de données, n² vaut mille milliards et n log n environ 20 millions, soit un écart de 50 000 fois. Comparée aux gains de quelques fois apportés par l'optimisation fine des instructions ou l'amélioration du matériel, l'amélioration algorithmique peut avoir un effet de plusieurs ordres de grandeur. On vérifie d'abord qu'aucun algorithme de forte complexité n'est utilisé, puis l'on ajoute les améliorations d'utilisation du cache, de parallélisation, etc.