Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2607 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  lib shared, optim facon static ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lib shared, optim facon static ?

n°1968388
NounouRs
Non parce que c pas mon pied !
Posté le 23-02-2010 à 09:32:05  profilanswer
 

Bonjour,
 
On oppose souvent l'usage de lib static (buildé dans l'exe) aux lib dynamiques (placées à coté de l'exe ou dans un PATH).
Et quand il s'agit de gagner de la place sur l'ensemble de l'application, on précaunise l'usage de lib static.
Grace aux options adaptées (Eliminate Unrefered Data sous windows, ou l'equivalent linux), les classes et méthodes inutilisées sont retirées du binaire final. Cela permet de gagner de l'espace.  
(en gros si vous utilisez uniquement ADD dans une lib de maths, alors SUB, DIV, et MULT seront tout simplement retirées, gagnant ainsi 3/4 de la taille totale)
 
Par contre, quand on utilise des lib dynamiques (ou partagées ou dll ou shared), celles ci sont déposées à coté de votre Exe telles quelles ! Identiques au moment où elles ont été compilées (par vous ou par le fournisseur des libs). Elles ont donc une taille fixée et non réductible (taille ne dépendant que des optim à leur compilation)
 
Ce que j'aimerai savoir, c'est s'il existe un moyen pour utiliser des shared libs, mais en ayant effectué la passe de "simplification" qui aurait été faite lors d'un link static ???
(En gros, je compile mon Exe, et une moulinette retire les symboles inutilisés au fur et à mesure dans les dll qui sont à coté)
 
Voilà... des idées ?


Message édité par NounouRs le 23-02-2010 à 10:09:26
mood
Publicité
Posté le 23-02-2010 à 09:32:05  profilanswer
 

n°1968406
ptitchep
Posté le 23-02-2010 à 10:13:16  profilanswer
 

Salut,
Pour moi, l'avantage d'une bibliothèque dynamique c'est que plusieurs exe l'utilisent. Elle est dans un path et contient les fonctions utilisées par plusieurs programmes. Donc oui, la taille est importante mais au final si on la divise par le nombre de programmes qui l'utilisent cela devient ridicule. Donc ton optimisation n'aurait pas lieu d'être.
Cela pose en effet problème si peu de programmes utilisent la bibliothèque...


---------------
deluser --remove-home ptitchep
n°1968417
NounouRs
Non parce que c pas mon pied !
Posté le 23-02-2010 à 10:22:40  profilanswer
 

Parole tres sage. Et je le sais bien.
Le probleme c'est effectivement quand peu de programmes l'utilisent.
En fait, peu de fournisseur de logiciels prennent le risque d'installer des dll (windows) dans windows/ blabla .  
Car souvent, on fourni des libs tres rares et tres specifiques à son application, on fait le choix des dll pour avoir des elements telechargeables séparemment, interchangeables et partageable en plusieurs de ses propres exe...   on ne pense bien souvent pas du tout aux autres applications qui pourraient en avoir besoin.
 
preuve en est, les tres célèbre lib MSVCR80.DLL   (et autres versions) sont présentent dans bon nombre d'applications (meme si fournir les dll n'est pas la technique recommandée par Microsoft).  Pourtant, je peux parier trouver au moins 5 soft qui l'utilisent sur chacun de vos PC... alors pourquoi ne pas l'installer pour tous ???
Et bien parce qu'on veut s'assurer de fournir la bonne version, celle qu'on certifie !!!!
 
Et comme elle est sur mesure, alors on cherche à la rendre encore plus sur mesure... c'est pour ca que je cherche à en réduire la taille en plus !!!!

n°1968429
ptitchep
Posté le 23-02-2010 à 10:39:18  profilanswer
 

[avis perso]
Si elle est sur mesure autant la mettre en statique.
[/avis perso]
[troll]
Le jour ou microsoft fera quelque chose de propre...
[/troll]
Blagues à part, je n'ai pas de solution pour réduire la taille, à part la recompiler en supprimant à la main les choses inutiles. Peut-être en effet qu'il y a un outil pour ça mais je ne le connais pas.


---------------
deluser --remove-home ptitchep
n°2060628
NounouRs
Non parce que c pas mon pied !
Posté le 02-03-2011 à 12:01:24  profilanswer
 

Je suis toujours en recherche d'un outils qui permettrait d'épurer une lib dynamique de tous les éléments inutilisés par telle ou telle executable.
 
EPURER( dll, exe) => dll amaigrie.

n°2064958
Pascal le ​nain
Posté le 21-03-2011 à 07:40:34  profilanswer
 

Quel interet ?
Gagner quelques ko ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  lib shared, optim facon static ?

 

Sujets relatifs
static_cast<> mal compris ?Tomcat : charger une resource présente dans le Shared Class loader
[SGBD] [semi-résolu] Comment organiser mes données de façon optimale ?Comment mettre un menu à cheval sur deux bloc DIV ?
FUNCTOR vs staticLa meilleure façon de concevoir le menu d'un site ?
gestion mémoire et shared object quel façon coder ce template épuré en CSS et html ?
Methode staticstatic_cast objet fille pointeur
Plus de sujets relatifs à : lib shared, optim facon static ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR