J’ai oublié de signaler. La call stack utilise une pile qui est implémentée dans le CPU, avec des instructions spécifiques si je ne m’abuse. Il y a effectivement possiblement un gain de performance à aller gratter de ce côté là.
MAIS.
Ça ne compense pas, très largement, l’overhead de la call stack (on empile/dépile tout le contexte d’exécution de la fonction en lieu et place des seules données propres à la récursion). Si je présente un algo avec des goto c’est aussi pour mettre en lumière cet aspect : l’instruction pointer par exemple va être empilé à tort lors d’un appel récursif (c’est le principe même d’une call stack).
[^] # Re: Loupé
Posté par greendev . En réponse au lien La récursivité sur linuxfr. Évalué à -1.
J’ai oublié de signaler. La call stack utilise une pile qui est implémentée dans le CPU, avec des instructions spécifiques si je ne m’abuse. Il y a effectivement possiblement un gain de performance à aller gratter de ce côté là.
MAIS.
Ça ne compense pas, très largement, l’overhead de la call stack (on empile/dépile tout le contexte d’exécution de la fonction en lieu et place des seules données propres à la récursion). Si je présente un algo avec des goto c’est aussi pour mettre en lumière cet aspect : l’instruction pointer par exemple va être empilé à tort lors d’un appel récursif (c’est le principe même d’une call stack).