Re: [SOS] Petit OS à la Linux en C++

s[e]th & h[o]lth seth.holth at gmail.com
Sam 17 Juin 14:14:08 CEST 2006


On 6/17/06, Cyril Dupuit <cyrildupuit at hotmail.com> wrote:

> Si ça t'intéresse, tu regarderas le code assembleur généré par la fonction
> memcpy() (dans sos par exemple) sur IA32 et tu regarderas du coté de
> l'instruction «movb, movsw, movsd» (rep + movsX). Tu verras que le nombre
> des accès mémoire est nettement réduit par ce couple d'instructions.


Dans certains cas, il est en effet possible que le compilateur ne sorte pas
le code assembleur ultime, encore qu'avec les optimisations adéquates, cela
est quand même rare. Je ne suis pas un très grand connaisseurs de GCC mais
en fouillant un peu dans les options, j'ai assez souvent trouvé une
génération de code assembleur qui me paraissait difficilement optimisable à
la main.
Malgré tout, l'optimisation "à la main" doit, dans certains cas, plus
approprié (je pense notamment à du code qui doit faire dialoguer le
processeur avec un autre périphérique). Le compilateur n'est pas forcément
censé connaître l'algorithme le plus efficace. Toujours est-il que malgré
tout, je reste convaincu que les efforts fournis à propos des optimisations
du code en assembleur devrait plutôt être faites du côté du compilateur
plutôt que du code lui-même.

Je suis tout de même d'accord pour dire que ce n'est que par souci de
> performances.


Comme je dit toujours : pour que le programme fonctionne "vite" bah... il
faut déjà qu'il fonctionne ^^
-------------- section suivante --------------
Une pièce jointe HTML a été enlevée...
URL: http://the-doors.enix.org/pipermail/sos/attachments/20060617/636717b7/attachment.html


Plus d'informations sur la liste de diffusion Sos