Oui, mais imagine un utilisateur ayant un seul jeu utilisant
genlib, les autres jeux qu'il possède utilisant d'autres routines que leurs programmeurs considèrent mieux adaptées à la situation (et il y en a:
AMS,
TIGCCLIB,
ExtGraph,
graphlib, ...). Si c'est un jeu n'exploitant pas toutes les possibilités de
genlib, mais seulement 30%, cela fera 70% de
genlib inutiles, soit 12 KO de gaspillés. Considère maintenant que ce jeu soit le seul nécessitant un kernel. Cela fera encore 12 KO de plus, donc 24 KO.
Ton scénario est extrème. Peu de gens rempliront toute la mémoire de la calculatrice avec les énormes jeux qui utilisent tout le potentiel de
genlib, notamment
SMA et
Chrono. De plus, en supprimant
Chrono qui n'existe pas encore, on n'en serait (en admettant que tes approximations soient correctes) qu'à 150% de
genlib présents sur la calculatrice si
genlib était une librairie statique, donc un gaspillage de seulement 9 KO, beaucoup moins que dans mon scénario.
De plus, une librairie statique peut être compressée avec
ExePack avec le reste du programme, une librairie dynamique
ne peut
pas être compressée (même pas avec
RunC, à moins d'utiliser un archive composé à décompresser manuellement avant de lancer le programme, un gaspillage de temps et de mémoire). Donc, en admettant un facteur de compression de 33% (le taux mesuré pour la compression d'exécutables dans mes tests de compression, qui ont aussi montré que
ExePack compresse légèrement mieux que
RunC, mais la différence se mesurant en octets), la perte due aux librairies dynamiques dans mon scénario est de 100-30*2/3=80% de
genlib + le kernel, c'est-à-dire de 14+12=26 KO, alors que le gain dans le scénario opposé (en retirant encore
Chrono, qui n'existe pas encore et que peu de gens auront sur leur calculatrice en même temps que
SMA pour des raisons de place) se réduit à 150*2/3-100=0% de
genlib, c'est-à-dire rien du tout. Et je n'ai pas compté le kernel que l'on pourrait supprimer dans ce cas, ce qui épargnerait 12 KO.
Même dans ton scénario original comprenant à la fois
SMA et
Chrono, où les librairies dynamiques épargneraient 240*2/3-100=60% de
genlib, c'est-à-dire 11 KO, si on prend en compte le fait que les librairies statiques permettent de se débarasser du kernel, l'utilisation de librairies statiques épargnerait en fin de compte 1 KO!
Donc, d'après mes calculs, les librairies statiques consomment, sauf cas vraiment extrêmes, moins de place (26 KO de moins dans le scénario où un seul jeu utilise
genlib, et seulement 30% des fonctions).
LES DIFFÉRENCES ENTRE LES CALCULS DE DARK ANGEL ET LES MIENS MONTRENT COMMENT IL EST FACILE DE MANIPULER LES STATISTIQUES DANS UN SENS COMME DANS L'AUTRE. SACHEZ QUE CHACUN DE NOUS VEUT MONTRER QUELQUE CHOSE, ET QUE DONC, MÊME EN RECHERCHANT UN MAXIMUM D'OBJECTIVITÉ, LES CHIFFRES DIFFÈRENT DE MANIÈRE IMPRESSIONNANTE.[edit]Edité par Kevin Kofler le 15-06-2001 à 00:06:04[/edit]