On Wed, Nov 03, 2004 at 06:08:29PM +0100, Jean-Marc Sac-Epee wrote:
> Gabriel Paubert wrote:
>
> >------------ COUIC ------------------------
> >
> >et une tendance excessive
> >a mettre trop de code "inline".
> >
> > Gabriel
> >
> >.
> >
> >
> >
> Oui, �a augmente la vitesse d'ex�cution, mais bonjour la taille de
> l'ex�cutable!... :'(
M�me pas s�r que �a acc�l�re en fait tellement �a pollue le cache.
Ce genre d'inlining n'est valable que pour du code execut� de
fa�on extr�menent r�p�titive, ce qui est le cas de moins de 10%
du code.
On a quelquefois l'impression que les gens sont plus impressionn�s
par un ex�cutable de 50 m�gas que de 30 kilos qui fait la m�me
chose. Non, je ne plaisante pas, j'ai d�j� vu trois ordres de
grandeur en taille de code entre deux programmes qui donnaient
la m�me fonctionnalit� (en fait le plus gros en faisait m�me un
peu moins mais je vais pas chipoter...). Devine lequel allait
le plus vite: celui qui restait dans le cache, ou l'autre?
Autre exemple de gag en C++ avec gtkmm, juste d�river une classe
de Gtk::Window: les constructeurs/destructeurs et autres tables
virtuelles construits juste pour �a font 20 kilo-octets avant
m�me de rajouter ta fonctionnalit�. Ces 20 kilo-octets disparaissent
si tu mets le Gtk::Window comme membre de ta classe.
Une fois �a passe, mais l'embonpoint arrive vite quand on fait
une arborescence de classes. Et encore je me fais vieux, je n'aurais
jamais tol�r� ce genre de choses il y a quelques ann�es.
Gabriel