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

Cyril Dupuit cyrildupuit at hotmail.com
Sam 17 Juin 08:53:54 CEST 2006


Salut,

>C'est un avis entièrement personnel mais je pense que dans tout projet, les
>principales priorités sont, par ordre de préférence :
>- Lisibilité & Homogénéité du code
>- Implémentation correcte
>- Maintenance aisée & Evolutibilité
>- Performance
>
>En effet, le C++ alourdit le code par rapport à du C mais à une époque peu
>lointaine on pensait aussi que le C alourdissait le code par rapport à de
>l'assembleur.
>Je pense que le le choix du C++ par rapport au langage C permet de faire
>gagner beaucoup de temps et d'effort sur les trois premiers points qui sont
>les plus importants. Le temps gagné pourrait être utilisé dans
>l'optimisation des compilateurs afin de gagner en performance après
>compilation non seulement pour ledit projet mais pour tout projet en C++.
>Cette vision est plutôt "utopiste" mais je remarque qu'aujourd'hui personne
>ne développe plus en assembleur pour des raisons de performances car les
>compilateurs C sont bien plus efficaces.

Je ne suis pas d'accord avec toi car une partie de mon travaille consiste à 
tenir à jour un os propriétaire codé entièrement en assembleur et je peux 
t'assurer qu'un compilateur C ne peux pas optimiser les performances à ce 
point.

Je suis tout de même d'accord pour dire que le C n'est pas si lent que ça. 
L'assembleur est à utiliser dans des parties de code lente et répétitive 
comme les copies de tableaux.
Au début, moi aussi je me disais que le C était rapide. Mais quand j'ai vu 
le code généré ...

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.

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

Cyril




Plus d'informations sur la liste de diffusion Sos