Le Mar 10 Nov - 12:13 (2009) par db0

Printf, cay mal




Le Mar 10 Nov - 12:13 (2009) par Publicité

PublicitéSupprimer les publicités ?





Le Ven 27 Nov - 21:00 (2009) par Korfuri

Une partie de ce que tu dis n'est pas juste.

En linkant en dynamique, ce qui est l'option par défaut, le code sera lié à la libC (quasiment inévitable si on reste réaliste) mais ne dépendra que de printf. printf, lui, dépend en interne de tas de trucs - mais ces trucs ne seront pas importés dans le binaire. Au contraire, au chargement du programme (en fait, un peu plus tard, par un habile système de lazy loading), les dépendances seront résolues. Les dépendances internes à la libC ne génèrent pas d'overhead. Le cout de printf est donc très négligeable.

Sur un autre plan, ton approche aux dépendances est erronée. On n'analyse pas un programme par les fonctions dont il dépend. C'est plus du reverse engineering qu'une approche analytique. Une approche analytique consiste à se pencher sur les sources, ou mieux, sur les documentations du programme, qui permettent de retrouver l'arbre de dépendances facilement.

Imaginons maintenant une approche sans printf. Je code donc ma lib de géolocalisation, comme dans ton exemple. J'y intègre un my_putstr. Je code une autre librairie. J'y intègre un my_putstr également, puisque j'en ai besoin. Je crée un programme qui utilise ces deux libs. J'ai ici du code dupliqué. Le binaire est bien plus lourd, et cela se ressent sur les performances (plus le binaire est lourd, plus les cache misses sont nombreux).

Le code de la libC étant universel, on peut raisonnablement considérer qu'il est toujours au moins en cache L2. Y accéder est donc extrêmement rapide.


L'optimisation prend des chemins bien détournés, parfois... Et C est un langage très axé optimisation, quoi que tu en croies. Linux ne s'en sort pas mal du tout non plus. Si tu veux troller sur le sujet, fais plutot un article sur Java, ça prend mieux Smile




Le Aujourd’hui à 16:42 (2017) par Contenu Sponsorisé






Ajouter un commentaire
Index | Panneau d’administration | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Retour sur le site Zéro fansub