# Gcc Geschwindigkeit

## tim tooler

der Beitrag 

https://forums.gentoo.org/viewtopic.php?t=72367

hat mich bewegt mal selber zu testen wie schnell der gcc ist:

vanilla-sourcen-2.4.21

nur menuconfig->speichern

make dep

dann time

```
 time make bzImage modules >/dev/null 
```

Debian 800 Mhz Duron:

10 min

Gentoo 1.4  Duron 900 Mhz:

12 min

Athlon 1333 Gentoo 1.4 :

5 min 30 

würde gern mal werte von anderen usern sehn, (auch mal andere distris wenn möglich ), um zu sehn ob und evtl warum der gcc so "langsam " ist

----------

## Sas

hast du auch immer exakt die gleiche gcc version (und flags) genutzt?

da gibts nämlich schon enorme unteschiede... (siehe auch aktuelle ix)

----------

## mario88

P4 mit Hyper Threading (2,4C GHz), Gentoo 1.4

Ergebnis:

 *Quote:*   

> real    3m32.504s
> 
> user    3m8.125s
> 
> sys     0m16.805s

 

gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r2, propolice)

----------

## tim tooler

das sieht ja schon mal sehr gut aus  :Smile: 

also ich hatte den gcc ganz normal ( das ebuild mach leider alle CFLAGS unf CXXFLAGS durch strip-flags weg)

nachdem das ebulid angepasst wurde komm ich nun mit 

```

-mcpu=athlon -march=athlon -Os -pipe -fomit-frame-pointer -funroll-loops -ffast-math
```

auf 8 min 59 (vorher 12 min ), also schon mal eine ganz schöne verbesserung.

gcc ist der vom ebuild gcc-3.2.3-r1

jetzt läuft der genau so schnell wie bei anderen distris.

ist das nur beim duron / athlon so ?

----------

## tim tooler

übrigens bei den ganz oben genannten 2 gentoo's ist es der 3.2.3-r1

bei debian war es auch ein 3.2.3

also alles die selben würd ich mal sagen

----------

## toskala

dir ist aber schon bewusst das deine make opts was am binary ändern was ausm gcc rauskommt und im regelfall eher weniger damit was zu tun haben wie schnell dein gcc ein stück sourcecode compiliert?

also was ich damit sagen will ist:

nur weil du irnkwelchen wilden cflags zambastelst geht deine compiliererei nich "schneller" das was hinten rauskommt wird unter umständen fixer

----------

## tacki

4 x P3-1133, distccd, 100MBit, gcc.3.2.3-r1, kernel 2.6.0-beta2

leicht modifizierte make-zeile (oder ist das cheating?  :Smile:  )

```

# emerge vanilla-sources

# cd /usr/src/linux-2.4.21

# make menuconfig

# make dep

# time make -j8 CC="distcc" bzImage modules >/dev/null

```

Ergebnis:

```

real    2m38.611s

user    0m53.863s

sys     0m17.390s

```

ging mir fast etwas zu schnell....

Edit: CFLAGS sind absoluter Standard: CFLAGS="-march=pentium3 -O3 -pipe"

----------

## mario88

Die in /etc/make.conf definierten CFLAGS bewirken bei der Kernel-Kompilierung aber nichts oder ??

Der setzt sich nach der Kernel-Config doch seine eigenen. (Welchen Prozessortyp man angibt und so.)

----------

## tim tooler

die CFLAGS sind ja auch nicht für den kernel gewesen, sonder ich hab damit den gcc nochmal neu gemacht , damit der schneller wird ( was er ja auch geworden ist)

weil wie ich festgestellt habe, beim erstellen des gcc die flags normaler weise ignoriert werden. und das hat es dann langsamer als bei anderen (debian) gemacht.

und der compiler läuft auch so sehr stabil( wie vorher nur schneller )

----------

## piquadrat

 *toskala wrote:*   

> dir ist aber schon bewusst das deine make opts was am binary ändern was ausm gcc rauskommt und im regelfall eher weniger damit was zu tun haben wie schnell dein gcc ein stück sourcecode compiliert?
> 
> 

 

So würd ich das auch nicht sagen. -pipe macht das Kompilieren schon ein gutes Stück schneller. Und wenn man zwei Dutzend Flags setzt, die den gcc zwingen, weit über die Ziellinie hinaus zu optimieren, dann dauerts halt länger als mit ein, zwei hundskomunen Allerweltsflags

----------

## toskala

oha, ich wusste nicht das -pipe sich auf die compilierdauer auswirkt. na wieder was gelernt  :Smile: 

----------

## lutzlustig

Hier mal meine Werte:

Makefile mit O2

real    2m34.709s

user    4m33.430s

sys     0m15.860s

Makefile mit O3

real    1m50.866s

user    3m22.960s

sys     0m10.310s

System:

ASUS A7M266-D mit 2* Athlon XP2400+ und 1GB DDR-RAM PC266 sowie SCSI-Festplatten (leider nicht die allerneuesten, dann wärs wohl schneller  :Smile: )

----------

## tim tooler

na die werte sidn wohl sehr sehr gut  :Wink: 

also war der orginale gcc bei dir auch so "langsam"

prozentual hat es ja doch eine ganze menge gebracht, also ich denke das könnte man getrost im ebuild entfernen das "strip-tags"

----------

## lorschy

aber letzen endes ist es doch egal wie lange das kompiliern daurert und wichtig wie schnell die gebauten programme laufen?!?!?!

und dummerweise is da der intel compiler auf einer intel kiste viel schneller   :Crying or Very sad:   :Crying or Very sad:   :Crying or Very sad: 

----------

## format c:

Habe mal den frischen Source von 2.4.21 mit SuSE und mit Gentoo kompilert

# time make dep clean bzImage modules > /dev/null

SuSE gcc 3.3 20030226

 *Quote:*   

> 
> 
> real 4m49.389s
> 
> user 4m0.530s
> ...

 

Gentoo gcc 3.2.3 20030422

 *Quote:*   

> 
> 
> real 4m33.648s
> 
> user 3m53.180s
> ...

 

Mal schauen, vielleicht mache ich das auf beiden Systemen noch mal mit dem gcc-2.95.3. Dann wäre es auch der gleich Compiler.

----------

## TheRuler

P4 mit Hyper Threading (2,4C GHz), Gentoo 1.4, Serial ATA Maxtor 8MB Festplatte, Mainboard Abit IC7.

 *Quote:*   

> real    2m46.269s
> 
> user    2m24.000s
> 
> sys     0m8.490s

 

gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r1, propolice)

Kernel vanilla 2.4.21

-march=pentium4 -O2 -pipe -mmmx -msse -msse2

----------

