• [^] # Re: Je ne sais pas comment faire autrement

    Posté par (site web personnel) . En réponse au message Optimisation de la récursivité. Évalué à 5.

    Pour faire court: Non ce n'est pas possible, même en optimisant le code généré par le compilateur tu ne pourra pas faire ça car c'est le CPU lui-même qui fonctionne ainsi (enfin l'instruction 'ret' surtout) .

    Le cache du CPU .. et bien c'est un cache pas une mémoire et en tant que tel il est géré par le CPU, à un comportement spécifique au
    CPU et est inaccessible (directement) par le compilateur / programmeur.
    De plus en environnement multi-tache il est susceptible d'être modifié de façon aléatoire par l'exécution des autres programmes et du kernel.

    Et même si ce cache était fiable il ne serait pas suffisamment grand pour stocker toutes les données d'une fonction récursive ou alors il faudrait peu de récursion et peu de variables (chaque variable déclarée dans ta fonction récursive est déposée sur la pile avant l'adresse de retour).



    Note: un programmeur asm de bon niveau avec suffisamment de connaissances sur le CPU qu'il utilise peut optimiser l'usage du cache sur un OS mono-tache et uniquement dans ce cas.