Je ne trouve pas assez d'informations pour décider quel compilateur je dois utiliser pour compiler mon projet. Il y a plusieurs programmes sur différents ordinateurs qui simulent un processus. Sur Linux, j'utilise GCC. Tout va bien. Je peux optimiser le code, il compile rapidement et n'utilise pas beaucoup de mémoire.
Je fais mon propre benchmark avec les compilateurs MSVC et GCC. Le dernier produit des binaires légèrement plus rapides (pour chaque sous-architecture). Bien que le temps de compilation soit bien supérieur à celui de MSVC.
J'ai donc décidé d'utiliser MinGW. Mais je ne trouve aucune explication sur les méthodes de gestion des exceptions et leurs implémentations dans MinGW. Je peux utiliser différentes distributions pour différents systèmes d'exploitation et architectures.
Considérations :
- Le temps de compilation et la mémoire ne sont pas importants pour mon utilisation. La seule chose importante est l'optimisation du temps d'exécution. J'ai besoin que mes programmes soient suffisamment rapides. Un compilateur lent est acceptable.
- Système d'exploitation : Microsoft Windows XP / 7 / 8 / Linux
- Architecture : Intel Core i7 / Core2 / et un très vieux i686 sous XP :P
8 votes
Je suis surpris que gcc produise un code plus rapide que MSVC ; les choses ont dû changer ces dernières années...
22 votes
@trojanfoe On m'a dit tellement de fois d'utiliser MSVC au lieu de MinGW. Tout le monde pense que MSVC est plus rapide ! J'ai testé MinGW 7.2 et MSVC 2010. avec un simple programme cpu-burst. Sur corei7 avec
-O3 -mtune=corei7
GCC est 45% plus rapide que MSVC7 votes
Dans ma propre expérience, avec un générateur de coups d'échecs (qui utilisait des bitboards), MSVC et Intel C++ étaient tous deux 10% plus rapides que gcc, mais c'était il y a 2 ans...
1 votes
@sorush-r juste pour être sûr de ce que signifie "45% plus rapide" : 1,45 fois plus rapide que MSVC ?
3 votes
@Wolf A cette époque, 45% plus rapide signifiait 45% de temps d'exécution en moins pour moi. Si je me souviens bien, le temps d'exécution de notre logiciel de modélisation de la géométrie moléculaire était de 134s (gcc) et 194s (msvc) pour un test spécifique. Néanmoins, je considère maintenant que ma méthode de mesure est incorrecte et insuffisante ( :
3 votes
@sorush-r Je vois, vous avez calculé (194-134)/134 ce qui est proche de 45%, merci.
0 votes
Je pense que cela dépendra de la charge de travail et des optimisations spécifiques qui seront/peuvent être appliquées par un compilateur dans ces circonstances. J'ai eu un exemple où une macabre grammaire boost::spirit s'exécutait très rapidement sur MSVC mais où les performances de l'exécutable de gcc étaient moins que brillantes. C'était il y a quelques années.