2 votes

Y a-t-il une taille maximale pour un fichier d'objets partagés ?

Je suis en train de créer une application dont le fichier .so est énorme - bien plus de 2 Go (dépouillé). Existe-t-il des limites à la taille d'un fichier d'objets partagés ? Parce que strace montre que le fichier est refusé parce qu'il est trop gros.

Mon système actuel est un système 32 bits, et je me demande également dans quelle mesure cela change si je construis pour un système Linux 64 bits.

1voto

Mahmut Bulut Points 19

Cela dépend de la mémoire de votre système. Les liens *.so directement chargés avec l'exécutable ou le système lui-même ne peuvent pas être chargés si vous avez une faible mémoire ou si le système d'exploitation alloue beaucoup de mémoire et si vous construisez pour un système 64 bits, il augmentera la taille de plus de 2 Go, en raison de l'ajout de certains drapeaux et instructions 64 bits.

1voto

Andrejs Cainikovs Points 7758

La bibliothèque partagée étant chargée entièrement en mémoire, je vous recommande vivement de déplacer vos ressources vers des fichiers externes. IMHO, 2GB est totalement inacceptable pour une bibliothèque partagée, et causera des problèmes sur les systèmes à faible mémoire.

UPDATE :

Veuillez ignorer ma première phrase concernant le chargement de bibliothèques partagées entières en mémoire. Comme l'a commenté l'OP, les bibliothèques partagées sont en effet mmap'ed, et les pages de symboles sont chargées à la demande.

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