inline ralentie appli

inline ralentie appli - C++ - Programmation

Marsh Posté le 19-08-2009 à 08:12:14    

Salut,
 
"inline functions might make it slower: Too much inlining might cause code bloat, which might cause "thrashing" on demand-paged virtual-memory systems. In other words, if the executable size is too big, the system might spend most of its time going out to disk to fetch the next chunk of code."  
 
 
On parle de quoi comme taille là ? 1G0 100MO ?  Comment détecter quand on commence à tomber dans l'excès ?
 
Merci.

Reply

Marsh Posté le 19-08-2009 à 08:12:14   

Reply

Marsh Posté le 19-08-2009 à 08:52:57    

c'ets du bullshit des années 80 ça.

Reply

Marsh Posté le 19-08-2009 à 09:19:29    

ok

Reply

Marsh Posté le 19-08-2009 à 11:51:12    

Je dirais pareil: BS.
 
Même des gros DSO (genre le moteur de Wireshark qui doit bien faire 50Meg), le système charge ça d'un coup au démarrage. Ca se charge en un peu plus de temps (genre OOo) mais c'est plus l'édition de liens qui fait chier qu'autres choses.
 
Mais j'ai quand même une petite histoire intéressante là dessus à propos de code bloat.
 
Mais ça t'empêche pas de surveiller.
 
Sur un projet, j'avais une hiérarchie de classe, dont la base avait un constructeur inliné. Ca faisait un truc genre Base() : str("default value" ) { }. Le jour où j'ai désinliné ce constructeur, j'ai gagné 1Meg sur 7Meg sur le binaire final. Et je suis passé de 140meg en debug à 100meg. Je me souviens pas d'avoir cachgrindé ça.
 
Toutes façons, n'inline pas des trucs non-triviaux en général, sinon tu ne feras rien à part augmenter ton temps de compilation. Si c'est une expression qui peut s'optimiser avec son contexte appelant ou bien si son temps d'exécution et du même ordre que le cout d'un aller/retour, ça devrait valoir le coût.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed