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