Dans son discours, il y a quelques jours sur Facebook - diapositives, vidéo, Andrei Alexandrescu parle du commun des intuitions qui pourrait prouver que nous avons tort. Pour moi un point très intéressant est venu sur la Diapositive 7, où il affirme que l'hypothèse "Moins d'instructions = plus rapide code" n'est pas vrai, et plus d'instructions ne sera pas nécessairement plus lente code.
Voici mon problème: La qualité audio de son discours (autour de 6:20min) n'est pas bien et je ne comprends pas l'explication très bien, mais de ce que j'ai, c'est qu'il compare à la retraite instructions avec l'optimalité de l'algorithme sur un niveau de performance.
Cependant, à partir de ma compréhension, ce ne peut pas être fait, parce que ce sont deux niveaux structurels. Des Instructions (surtout en fait à la retraite instructions) sont une mesure très importante et, fondamentalement, vous donne une idée de la performance pour atteindre un but. Si l'on exclut le temps de latence d'une instruction, on peut généraliser que de moins en moins à la retraite instructions = plus rapide du code. Maintenant, bien sûr il y a des cas où un algorithme qui effectue des calculs complexes à l'intérieur d'une boucle d'obtenir de meilleurs performances, même si elle est effectuée à l'intérieur de la boucle, car il va se casser la boucle antérieure (pensez graphique de la traversée). Mais ne serait-il pas plus utile de comparer les algorithmes sur un niveau de complexité plutôt que de dire cette boucle a plus d'instructions et c'est mieux que l'autre? De mon point de vue, le meilleur algorithme aura de moins en moins à la retraite des instructions à la fin.
Quelqu'un peut-il m'aider à comprendre où il voulait en venir son exemple, et comment peut-il y avoir un cas où (beaucoup) plus à la retraite instructions conduire à de meilleures performances?