Rapidité d’exécution de gcc

17 réponses
Avatar
lunix
Bonjour

Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?

Et make -j3 pour compiler ça accélère?

10 réponses

1 2
Avatar
lunix
Le 04/06/2012 11:22, lunix a écrit :
Bonjour

Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?

Et make -j3 pour compiler ça accélère?



J'ai oublié de préciser que je suis zéro en programmation,je comprend a
peine un peu le fonctionnement de la compilation.
Avatar
Nicolas George
lunix , dans le message
<4fcc7ea7$0$21553$, a écrit :
Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.



Ça dépend quel programme.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?



Tu cherches à compiler gcc ou à compiler _avec_ gcc ?
Avatar
lunix
Le 04/06/2012 11:40, Nicolas George a écrit :
lunix , dans le message
<4fcc7ea7$0$21553$, a écrit :
Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.



Ça dépend quel programme.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?



Tu cherches à compiler gcc ou à compiler _avec_ gcc ?



J'ai compilé gcc avec -march=core2 dans le make.conf donc il est adapté
a mon système et va compilé plus rapidement?

Je pense que j'explique mal.

Par exemple pour les libs comme qt ou firefox ou chromium gcc va
compiler les fichiers plus rapidement?
Avatar
lunix
Le 04/06/2012 11:40, Nicolas George a écrit :
lunix , dans le message
<4fcc7ea7$0$21553$, a écrit :
Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.



Ça dépend quel programme.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?



Tu cherches à compiler gcc ou à compiler _avec_ gcc ?



J'ai compilé gcc avec -march=core2 dans le make.conf donc il est adapté
a mon système et va compilé plus rapidement?

Je pense que j'explique mal.

Par exemple pour les libs comme qt ou firefox ou chromium gcc va
compiler les fichiers plus rapidement?
Avatar
Nicolas George
lunix , dans le message
<4fcc83ca$0$21591$, a écrit :
J'ai compilé gcc avec -march=core2 dans le make.conf donc il est adapté
a mon système et va compilé plus rapidement?



Pour gcc, je ne pense que la différence sera négligeable, à part pour un ou
deux programmes très complexes à optimiser.
Avatar
Nicolas Richard
Le Mon, 04 Jun 2012 11:22:29 +0200, lunix disait :
Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?



Je n'en ai aucune idée. On peut espérer que gcc soit au moins aussi
efficace lorsqu'il a été compilé spécifiquement pour ton architecture,
mais même ça je me demande parfois si c'est évident. Mais je suis comme
toi sur ce point : je sais à peine comment fonctionne un compilateur.

Et make -j3 pour compiler ça accélère?



Eh bien si tu as plusieurs processeurs, oui, ça devrait. Cela dit à
partir d'un certain nombre de processeurs, je suspecte que le goulot
d'étranglement est ailleurs. Là encore, je n'en sais fondamentalement
rien.

--
Nico.
Avatar
Emmanuel Florac
Le Mon, 04 Jun 2012 11:22:29 +0200, lunix a écrit:


Donc j'utilise gentoo,on m'a dit que ça servait a rien de compiler un
programme par exemple dans mon cas avec -march=core2.



Ça peut accélérer, mais à la marge.

Donc gcc compilé avec -march=core2 ou sans rien en generic va s’exécuté
avec la même rapidité?



Il va sans doute s'exécuter un tout petit peu plus vite, mais de nos
jours ce qui constitue le facteur de ralentissement le plus important
c'est plutôt le disque dur. Acheter un SSD, ça accélère énormément, le
reste...

Et make -j3 pour compiler ça accélère?



Ça accélère la compilation si tu as au moins 2 coeurs. Si tu as un 4
coeurs, mieux vaut faire make -j5. L'idée est de lancer plusieurs compils
en parallèle (3 ou 5 en l'espèce) pour occuper tous les coeurs.

--
I contend that we are both atheists. I just believe in one fewer god
than you do. When you understand why you dismiss all the other
possible gods, you will understand why I dismiss yours.
Steven Roberts
Avatar
Nicolas George
Emmanuel Florac , dans le message
<4fce6d8c$0$21936$, a écrit :
Il va sans doute s'exécuter un tout petit peu plus vite, mais de nos
jours ce qui constitue le facteur de ralentissement le plus important
c'est plutôt le disque dur.



Pas forcément. À moins de compiler un monstre, l'arbre de compilation tient
entièrement en RAM. Et pour peu que les sources viennent juste d'être
déballées d'un tarball, tout se trouve déjà en cache, et les entêtes
systèmes y seront très rapidement également.
Avatar
Emmanuel Florac
Le Tue, 05 Jun 2012 20:39:50 +0000, Nicolas George a écrit:

À moins de compiler un monstre, l'arbre de compilation tient entièrement
en RAM.



Certes. Mais dans ce cas, que ton gcc soit compilé en 486 ou core2, ça ne
fera pas beaucoup de différence non plus :)

--
De longs désirs, une longue admiration sans espérance, voilà le moyen
d'adorer les femmes, et de rendre l'amour une passion délicieuse!
N. Rétif de la Bretonne.
Avatar
Nicolas George
Emmanuel Florac , dans le message
<4fce77ad$0$21936$, a écrit :
Certes. Mais dans ce cas, que ton gcc soit compilé en 486 ou core2, ça ne
fera pas beaucoup de différence non plus :)



Euh... tu peux expliciter ton raisonnement ?
1 2