Supposons que j'ai une bibliothèque - foo.so. Lors de la construction de mon binaire (qui a besoin de cette bibliothèque), je peux soit (1) lier foo.so, soit (2) dans le code source du programme, dlopen cette bibliothèque puis appeler les fonctions fournies par cette bibliothèquedlopen vs liaison overhead
une différence de performance entre (1) et (2) lorsque j'appelle une fonction de la bibliothèque? Notez que je suis conscient qu'il y aura différentes caractéristiques d'initialisation (comme le coût du dlopen, les frais généraux pour la première utilisation d'un symbole, etc.) mais en régime permanent, les deux alternatives sont-elles aussi rapides ou plus rapides?
Merci.
Mais «dlopen» n'offre-t-il pas une couche d'indirection supplémentaire via un pointeur? –
Non w.r.t. une bibliothèque partagée (comme 'libc.so') qui utilise aussi une indirection –