accélérer la compilation (pré-compilation ?) - C++ - Programmation
Marsh Posté le 13-12-2004 à 15:38:20
oui, man gcc (>= 3.2) & msdn
sinon ccache sous linux
et distcc aussi
Marsh Posté le 13-12-2004 à 15:38:34
Citation : % cat foo.h |
Marsh Posté le 13-12-2004 à 15:39:08
schnapsmann a écrit : oui, man gcc & msdn |
faut aussi voir à réduire les dépendances de compilations.
Marsh Posté le 14-12-2004 à 08:13:08
j ai fait un test avec ccache sous linux et je passe d'une 1ere compilation de plus de 40s à 7s donc ça accélère le truc, mais il y a la première compilation à effectuer.
Y a t il un compilateur "à la volée" qui peut compiler au fur et à mesure que l'on tape du code ? ça serait pratique pour détecter de suite les erreurs et ainsi gagner énormément de temps...
Marsh Posté le 14-12-2004 à 08:47:43
il n'y a pas de quoi merci
à la volée > certains ide détectent de possibles erreurs de syntaxe et ou de parenthèsage, mais en aucun cas il ne s'agit de compilation à la volée
Marsh Posté le 14-12-2004 à 08:54:22
schnapsmann a écrit : il n'y a pas de quoi merci |
... en C++. Car les 2 gros problèmes, c'est le préprocesseur et le code template, où une simple modification d'une ligne peut changer le sens de millions de milliards de lignes.
Il me semble qu'en Java, ça existe (en tout cas, je me souviens de Visual Age for Java 1.1 qui compilait automatiquement la méthode que l'on venait juste d'éditer, mais ça remonte à il y a 5 ans au moins).
Par contre, avec wxWidgets, il faut:
1. éviter autant que possible de mélanger la couche présentation avec le reste, car ça plombe vite un projet.
2. éviter d'inclure wxAll.h, et plutôt utiliser les fichiers spécifiques, c'est toujours ça de gagner
Marsh Posté le 14-12-2004 à 10:27:44
VTK au commencement tout était dans un unique fichier, puis ils ont tout découpé car trop lent à compiler. Là, en étudiant de près les header inclus etc... et en en virant des indésirables j'ai réduit le temps de compilation par 2. En utilisant les pch, sur certains projet ca a été 10 fois plus rapides à compiler, sinon sur VTK toujours, en faisant une grosse bidouille grossière pour pas fouttre en l'air le système des includes (inconvénient des pch) ben je suis arrivé à réduire par 3 (2000 fichiers en tout).
Marsh Posté le 14-12-2004 à 10:41:21
scons permet d'éviter de recompiler des fichiers non modifiés
Marsh Posté le 14-12-2004 à 11:23:09
ReplyMarsh Posté le 14-12-2004 à 11:28:39
Tu me déçois là.
Citation : éviter de recompiler des fichiers non modifiés |
Marsh Posté le 14-12-2004 à 11:50:31
ben oui, scons se base sur la signature md5 des fichiers et non leur mtime.
Marsh Posté le 14-12-2004 à 13:04:52
signer un fichier avec md5 c'est plus rapide que de tester son mtime ?
Marsh Posté le 14-12-2004 à 13:28:53
non, mais c'est plus fiable. Et comme les fichiers sont petits, c'est transparent
Marsh Posté le 14-12-2004 à 14:14:31
Ouai bon j'ai fait un bide quoi. C'est juste que c'est la fonctionnalité de base d'un makefile de ne pas recompiler pour rien un fichier.
Marsh Posté le 14-12-2004 à 14:27:01
ben il te faut une heuristique pour déterminer si un fichier à changer ou pas, sinon, il faut conserver la copie de l'original.
Marsh Posté le 14-12-2004 à 14:57:15
Ah ok je pige mieux. Si la date a changé, alors, il fait une vérification md5 en + au cas où la date a changé mais pas le contenu (sauvegarde accidentelle, ...).
Marsh Posté le 13-12-2004 à 15:35:55
Bonjour,
y a t il une méthode pour faire en sorte que les fichiers header (les .h ou .hpp) soient pré-compilés ? cela permettrait de gagner énormément de temps. Avec gcc ou ses versions sous windows si possible.
Merci