kompilatorer blir långsammare hela tiden

Permalänk
Medlem

kompilatorer blir långsammare hela tiden

Någon som har bra koll på varför kompilatorerna (syftar egentligen bara på visual studio som e det enda jag har koll på) hela tiden blir långsammare för varje version?

Är det enbart pga att kompilatorn optimerar koden mer och mer för varje ny version eller är det något mer?

Går det att ställa in så att den gör mindre optimeringar isf?

För då man för tillfället ändå inte är ute efter en slutgiltig releaseversion så vill man ju bara ha snabba kompileringar.

Jag arbetar med 7.1, 6.0 och 4.0 parallellt och ju äldre desto snabbare, och skillnaden är ju inte direkt liten heller, 4.0 är säkert mer än dubbelt så snabb som 7.1... Rent spontant så känns det som om det borde vara tvärt om

Men som sagt, min 7.1a får väldigt gärna generera otroligt kass kod till dess att jag ska göra en release, så om det går att ordna så vill jag ha det så

Kanske borde ha kollat upp det innan jag frågade, men orkade inte Finns kanske en del intressanta inställningar...

... Man kastar trots allt bort en hel del tid på kompileringar om man arbetar med stora projekt... som jag alltid gör...

Edit: kanske ska klargöra att jag snackar om C++

Edit2:
Självklart så är det ju så att kompilatorerna får mer flexibilitet och mer stöd för saker och ting osv. Måste ju säga att ibland är jag bättre på C++ än vc4-kompilatorn
Den bråkar ju om en hel detaljer som ligger i kategorin fullt kodkända c++ instruktioner.... Men men, snabb som attan är den ju iaf, så roligt att kompilera då

Permalänk
Medlem

Jo, och G++ är 3x långsammare än VC 7.1
Digital Mars är en liten och snabb kompilator.

Visa signatur

Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots

Permalänk
Citat:

Ursprungligen inskrivet av Sunray
Jo, och G++ är 3x långsammare än VC 7.1
Digital Mars är en liten och snabb kompilator.

G++ är grymt långsam, 3.x är mycket långsammare än 2.95. Dock håller GCC rätt konstant hastighet tycker jag

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem

Gäller väl det mesta. Testa ex. windows 3.11 på dagens gigahertzmaskiner så får du se ett operativsystem som är löjligt snabbt

Permalänk
Citat:

Ursprungligen inskrivet av iXam
Gäller väl det mesta. Testa ex. windows 3.11 på dagens gigahertzmaskiner så får du se ett operativsystem som är löjligt snabbt

Det är även löjöigt föråldrat och har inte bråkdelen av de funktion ett modernt operativsystem har Som t.ex. bra minneshantering och minnesskydd

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av dr slizer
Det är även löjöigt föråldrat och har inte bråkdelen av de funktion ett modernt operativsystem har Som t.ex. bra minneshantering och minnesskydd

Precis som Visual C++ är innan version 7.1, föråldrat alltså

Permalänk
Medlem

ingen som hade något konstruktivt att komma med alltså?

Permalänk
Medlem

Diskussionen skulle antagligen bli mer meningsfull om någon kunde bidra med litet konkreta benchmarks. Hur mycket långsammare är egentligen kompileringen i VC++7.1 jämfört med (låt oss säga) GNU g++ 2.95? På samma maskin givetvis.

GNU:s g++ är i vart fall inte så långsam så att den stör mig...

Visa signatur

perga

Permalänk
Medlem

För alla er som tycker att gcc är så grymt långsam. Ni sitter antagligen och gör make clean, make om och om igen. Testa då ccache http://ccache.samba.org/

Visa signatur

"Anyone who puts a small gloss on a fundamental technology, calls it proprietary, and then tries to keep others from building on it, is a thief."
-Tim O'Reilly "http://iiice.net/~ice/stuff/secret_msg.wav" - who?

Permalänk
Medlem

Jag ville inte diskutera jämförelse mellan vc och g++, det är ju självklart att kompilatorer med helt skild historia och olika utvecklare ger skilda resultat.

Det jag undrar är varför varje ny msvc är klart långsamare än den förra.
Som jag nämnde tidigare så ville jag veta om någon vet varför det är så... Vi vet att nyare kompilator genererar bättre binärdata än en äldre, och det ser vi som en rimlig anledning att kompilatorn tar mer tid på sig...
Men finns det mer detaljer? Finns det settings för att justera detta?

Något som kanske är 2 minuter kompileringstid för 7.1 kanske är 40 sekunder för 4.0 och nånstans där i mitten för 6.0... Det tycker jag är ganska intressant....

Permalänk
Medlem

Som flera redan sagt, dom blir segare för att dom gör mer saker för att göra bättre kod, ge bättre felmess osv. Jag har ingen koll på vad man kan göra för att snabba upp just VC-kompilatorn, men nog borde det finnas lite växlar man kan testa med. Ett första steg borde iaf vara att stänga av alla optimeringar och liknande..

Permalänk
Medlem

Ok. Varför.
Därför att processorerna blir mer och mer komplicerade och det tar helt enkelt mer tid för kompilatorn att producera optimerad kod för dessa.
Just Intels 64-bitars processorer har jag läst ska vara väldigt beroende på att kompilatorn gör sitt jobb bra för att få nån hastighet ur skiten.

Permalänk
Medlem

jo visst, men är det hela sanningen?
skulle kunna göra benchmarks på mina program som är kompilerade med vc6 jämfört med 7.1, har svårt att tro att det är synliga skilnader faktiskt.

OT: bäst signatur

Permalänk
Citat:

Ursprungligen inskrivet av iXam
Ok. Varför.
Därför att processorerna blir mer och mer komplicerade och det tar helt enkelt mer tid för kompilatorn att producera optimerad kod för dessa.
Just Intels 64-bitars processorer har jag läst ska vara väldigt beroende på att kompilatorn gör sitt jobb bra för att få nån hastighet ur skiten.

Det stämmer det du säger om IA64. Men IA32 skilljer sig markant från IA64 och IA32 har inte förändrats nämnvärt de senaste åren.

Visa signatur

"to conquer others is to have power, to conquer yourself is to know the way"

Permalänk
Medlem

Jag har inte någon koll på msvc, men generellt sett blir kompilatorerna långsammare ju fler avancerade optimeringar som implementeras, som sagts tidigare i tråden. Dock borde det definitivt gå att stänga av de flesta optimeringar i msvc, om det inte går rekommenderar jag att du skaffar dig en vettigare kompilator...

Att det är svårare att generera kod för en processor för att den är nyare är inte helt sant, svårigheterna beror på hur arkitekturen är designad. Jag jobbar med att skriva en C-kompilator för en 8-bitars cpu, och det är fan så mycket svårare att generera optimerad kod till den än till en IA32.

Angående IA64 är den lite speciell, då det är en VLIW (very long instruction word) arkitektur, där man låter kompilatorn göra schemaläggning av instruktioner som kan utföras parallellt.

Visa signatur

Vad är väl en bal på slottet?

Permalänk

Du bör kunna sätta ner optimeringen i kompilatorn (har inte den här så jag kan inte kolla hur), men kom ihåg att testa rejält efter du ställt upp optimeringen igen för att bygga en release, för har du otur så orsakar optimeringen en bugg (samma sak gäller med debug-kod, när man tar bort sånt så kan oxo buggar triggas)

Visa signatur

Allmänt virrig.