2 votes

Y a-t-il une perte de performance lors de la superposition et de la sous-association de fichiers .so ?

Certaines personnes lient des fichiers d'objets partagés de manière à ce qu'ils n'aient aucune entrée dans leur liste NEEDED, et lorsqu'elles lient ces fichiers SO à un binaire, elles placent les dépendances transitives de tous les fichiers SO dans la liste NEEDED du binaire créé à la place, sans tenir compte du fait que le binaire a réellement besoin de ces fichiers SO.

Le premier acte consistant à ne pas lier les fichiers SO requis à un certain fichier SO est appelé Sous-liaison et ce dernier acte de lier trop de fichiers SO à un certain binaire est appelé chevauchement .

Je discute avec mon collègue pour savoir si ce schéma de construction d'une application et de ses fichiers SO impose un coût de performance lors de la construction ou de l'exécution d'une application ou de ses fichiers SO. Par exemple, peut-être y a-t-il un coût supplémentaire dans la résolution dynamique des symboles pour le PLT ? Quelqu'un peut-il m'éclairer à ce sujet ?

2voto

ajax Points 286

Cela modifiera certainement les performances de la recherche de symboles, probablement pour le pire. La résolution des symboles ELF est une recherche en largeur à partir de la table des symboles de l'exécutable lui-même, puis des tables des symboles des bibliothèques DT_NEEDED de l'exécutable, puis des tables des symboles des DT_NEEDED de ces bibliothèques, etc. En superposant l'exécutable principal, vous obligerez probablement plus de recherches de symboles à itérer à travers plus de tables de symboles de bibliothèques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X