Déjà, utilise un [u]int{std size register for your archi}.
Éviter les conversions, si ton archi n'ai pas 8bit, n'utilise pas les uint8(par exemple)
La suite je ne suis pas sur de comprendre… Mais je tente une réponse.
Perso je pense que pour des fonctions "pure" type: int (*)(int)(enfin avec la même "signature") un tableau de pointeur sur func est la bonne solution.
Je ne suis pas sur, mais l'utilisation de fonction static( + inline) devrais aussi aider le compilateur à réaliser quelques optimisations.
GCC(si tu utilise ce compilateur) a des extensions qui permet(sur du x86, sur du x86_64 ce n'ai plus utile) de forcé l'utilisation des registers(func a <= 4 arg) ce qui permet de la aussi de faire gagner quelques cycles.
Je ne suis pas sur de t'avoir répondu correctement, mais j’espère t'avoir un peu aidé.
# Juste une idée.
Posté par paipai62 . En réponse au message Coût d'un accès mémoire.. Évalué à 1. Dernière modification le 26 juin 2012 à 23:56.
Déjà, utilise un [u]int{std size register for your archi}.
Éviter les conversions, si ton archi n'ai pas 8bit, n'utilise pas les uint8(par exemple)
La suite je ne suis pas sur de comprendre… Mais je tente une réponse.
Perso je pense que pour des fonctions "pure" type: int (*)(int)(enfin avec la même "signature") un tableau de pointeur sur func est la bonne solution.
Je ne suis pas sur, mais l'utilisation de fonction static( + inline) devrais aussi aider le compilateur à réaliser quelques optimisations.
GCC(si tu utilise ce compilateur) a des extensions qui permet(sur du x86, sur du x86_64 ce n'ai plus utile) de forcé l'utilisation des registers(func a <= 4 arg) ce qui permet de la aussi de faire gagner quelques cycles.
Je ne suis pas sur de t'avoir répondu correctement, mais j’espère t'avoir un peu aidé.