Avatar billede sbk200 Nybegynder
10. februar 2005 - 15:47 Der er 11 kommentarer og
1 løsning

gcc cygwin kompilere langsomt!!

Hej Eksperter,

Hvordan får man gcc (cygwin) til at kompilere hurtigere. Har prøvet -O0.
Avatar billede arne_v Ekspert
10. februar 2005 - 15:57 #1
Køber en hurtigere PC.

:-)

For 10 år siden ville amn sætte TEMP/TMP til en RAM disk.

Men det tror jeg ikke giver noget idag.

Og jeg kan ikke forstå at det er nødvendigt. Det tager da ikke mange sekunder at
compile noget og det er intet sammenlignet med den tid det tager at skrive
koden.

Ved store projekter skal man naturligvis bruge libs (.a filer) og make til at builde med.
Avatar billede bertelbrander Novice
10. februar 2005 - 20:00 #2
Jeg mener nu nok at det er et problem at cygwin (og mingw) er 10 gange så lang tid om at kompilere det samme kode end f.ex. Borland eller Microsoft. Selv et moderart størrelses project tager over en time at kompilere. I sjælne tilfælde kommer man til at lave konstruktioner der tager G++ over et kvarter at kompilere (og 500 mega byte RAM), hvor Borland kan kompilere på 10 sekunder; så er man nødt til at omskrive koden.

En af årsagerne er at g++ ikke har prekompilerede headere, men det er ikke hele årsagen.

Sjovt nok er g++ på f.ex. linux meget hurtigere end g++ på Windows, så det må være et problem med porteringen.
Avatar billede arne_v Ekspert
10. februar 2005 - 20:28 #3
Meget af årsagen ligger vel i at GCC bygger på klassisk Unix C compiler
opbygning.

.c--(gcc)-->.obj

er i virkeligheden:

.c--(cpp)-->.i--(cc1)-->.s--(as)-->.obj

De 2 temporære filer kan koste meget.

Linux er berømt for at temporære filer aldrig kommer i nærheden af
en diskplade.
Avatar billede sbk200 Nybegynder
11. februar 2005 - 08:19 #4
Hmm,... Dvs. at "Brug en anden kompiler" er den eneste løsning.
Avatar billede arne_v Ekspert
11. februar 2005 - 09:20 #5
Jeg mener stadig at ved:
  - en fornuftig strukturering af softwaren
og
  - en intelligent build procedure
så bør det ikke være et problem med compiler hastighed.
Avatar billede sbk200 Nybegynder
11. februar 2005 - 09:31 #6
Arne->
Fornuftig strukturering af software, mener du hermed at opdele det i libs ?
Vil du uddybe "en inteligent build procedure" ?
Avatar billede arne_v Ekspert
11. februar 2005 - 11:27 #7
Fornuftig opdeling = en rettelse i en .h fil betyder at kun et mindre antal .cpp
file skal recompiles (en rettelse i en .cpp fil vil selvfølgelig altid kun
give en recompile)

intelligent build procedure = brug af lib sog make som gør at der kun bliver bygget
det som faktisk er nødvendigt efter den fornuftige opdeling er lavet
Avatar billede sbk200 Nybegynder
11. februar 2005 - 11:33 #8
Det lyder som den opdeling jeg pt. anvender. Kunne dog godt, med fordel, dele koden op i nogle libs - hvilket jo vil reducere kompileringstiden.
Avatar billede sbk200 Nybegynder
11. februar 2005 - 11:34 #9
Kan I ikke smide et svar, så fordeler jeg lidt point for opmærksomheden ;o)
Avatar billede arne_v Ekspert
11. februar 2005 - 11:53 #10
jo da
Avatar billede arne_v Ekspert
25. februar 2005 - 20:34 #11
Jeg tror at det bliver svært at få Bertel til at ligge et svar
Avatar billede sbk200 Nybegynder
28. februar 2005 - 16:18 #12
Ja, han har vist fået tid nok,... Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester