Procédures Near vs Far en Go
Distinction d'appel au niveau paquet en Go
En Go, un appel de fonction est classé à la compilation :
- Near (intra-package) : Appelant et appelé résident dans le même paquet. Appel direct, surcoût minimal.
- Far (inter-package) : Appelant et appelé sont dans différents paquets. L'appel passe par un stub qui gère la frontière de paquet.
Pourquoi cela importe
La distinction n'affecte que la mécanique de defer pendant panic/recover ou nettoyage ressources. Une fonction far différée stocke un pointeur de stub ; une near stocke un pointeur direct. Les appels inter-package sont légèrement plus coûteux, donc regrouper fonctions liées dans un paquet peut optimiser les chemins critiques.
