[gcc / g++]accélerer la compilation

accélerer la compilation [gcc / g++] - C++ - Programmation

Marsh Posté le 25-05-2003 à 13:48:41    

j'aimerais savoir si y a un moyen d'accéler le traitement de gcc (dans mon cas g++), au niveau du cache des fichiers (ou autre technique)
 
j'explique: je commence avec vtk (visualisation 3D), et pour 100 lignes d'instructions (sans templates), le préprocesseur se prends 500000 lignes dans la tete (1.5Mo) ce qui a pour effet sur mon Celeron800 de prendre 8/10s par fichier. je crois qu'il n'y a rien a faire niveau organisation des fichiers, alors je cherche niveau compilateur. -pipe n'améliore rien.
 
j'avais entendu parler un frontend à gcc qui améliorer ce genre de chose, mais je n'arrive pas à mettre la main dessus
 
 
tout conseil est le bienvenu :jap:

Reply

Marsh Posté le 25-05-2003 à 13:48:41   

Reply

Marsh Posté le 25-05-2003 à 14:05:23    

Si t'es téméraire, essaye une prerelease de gcc 3.4, il a un précompilateur de headers.
 
gcc 2.95.x aussi est censé être significativement plus rapide que les versions récentes qui sont de plus en plus lentes pour le c++, ça devient une horreur.  
 
bien sûr tu peux baisser le niveau d'optimisation, ou réduire le niveau d'inlining (je crois que c'est l'inlining qui est le principal problème) en jouant sur le -finline-limit
 
Le frontend, c'est pas ccache ? ça n'aide que pour les recompilations d'un fichier qui n'a pas changé (ceci dit ça coute rien de l'utiliser, sauf de l'espace disque)
 
Sinon je suis aussi (extremement) interessé par toute solution à ce problème :cry: . C'est pas forcement spécifique à gcc d'ailleurs, icc est aussi lent

Reply

Marsh Posté le 25-05-2003 à 14:09:03    

t'as absolument rien compris sauf pour le ccache  :D
 
je parle du traitement du préprocesseur, pas de la génération du code qui comrepdns optimisation, pré-compilaton des headers templates, etc
 
edit: qui est un debut de solution, mais effectivement quand le ficheir change, patatra


Message édité par Taz le 25-05-2003 à 14:18:36
Reply

Sujets relatifs:

Leave a Replay

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