Gå til innhold

Hvilken hurtigst å kompilere; assembly eller C++ ?


Anbefalte innlegg

Videoannonse
Annonse

Assembly kompileres jo ikke i det hele tatt, men oversettes direkte til maskinkode.

OK, hvor lenge tar det i forhold til C++ tid å kompilere ?

F.eks jeg lage en assemblykode som bare regner en PI av 12.000 km

Hvor lenge tar det å kompilere sånn C++ kode ?

 

Jeg forklarer alt etterpå hvorfor jeg spør.

Lenke til kommentar

Hvorfor i all verden skulle dette være en interessant problemstilling?

 

Ettersom mange C++-kompilatorer går via en assembler er det 100% umulig at det kan kompilere raskere enn asm.

 

Skriv C++.

Men jeg lurer bare på hvor lenge tid det tar å kompilere fra asm til maskinkode i forhold til C++ kompilator. 

Jeg skal svare på hvorfor jeg spør. Fordi en full flight simulator, DC-10, med to stk PDP-11/40 klarer å kjøre det uten problemer, og ytelsen er ca 1.5 million instruksjoner per sekund totalt. Assemblykode er på 160.000 linjer. Så jeg undersøker om de har lagret asm kode som er klar til å kompilere i tredje PDP-11 som blir kalt "math routines" så jeg tror det den tredje gjør er å kompilere kode på forhånd når jeg gjør en viss oppskrift når en lærer å fly; for eksempel en skal lande flyet, så gjør tredje om fra asm til maskinkode så fjerner den som er ikke nødvendig å ha i RAM i første og andre maskin. Denne DC-10 full flight simulator har INGEN falske instrumenter og flight model oppfører som det skal.

Endret av Force
Lenke til kommentar

Korte og unødvendige innlegg som ikke hører hjemme i tråden er flyttet inn i det sorte hullet til forumet. Vennligst ikke skriv i tråden med mindre det er relevant til trådens tema. Les gjerne retningslinjene §1.

Reaksjoner på dette skal som vanlig ikke kommenteres i tråden men kan gjerne tas på https://www.diskusjon.no/index.php?s=b5770b344f75925a57cf672f34bd93db&&app=members&module=messaging&section=send&do=form&preview=1&_from=quickPM&fromMemberID=1713”'>Personlig Melding. Tilbakemelding av generell karakter kan gjøres i Tilbakemeldinger om forumet.

Lenke til kommentar

 

Hvor lenge tar det å kompilere sånn C++ kode ?

 

 

For å svare slik at selv moderator forstår det: Det er det umulig å gi noe svar på med de opplysningene som er tilgjengelig. Det føyer seg inn i rekken av spørsmål som; Hvor stor er en fisk? Hvor mange runder er det på Bislett? 

Lenke til kommentar

 

 

Hvor lenge tar det å kompilere sånn C++ kode ?

 

 

For å svare slik at selv moderator forstår det: Det er det umulig å gi noe svar på med de opplysningene som er tilgjengelig. Det føyer seg inn i rekken av spørsmål som; Hvor stor er en fisk? Hvor mange runder er det på Bislett? 

 

Skjønner nå fordi jeg ser at en enkel Hello World tar tre ganger så stort lagring som C++ fordi det inneholder flere bokstaver. Så nå skal jeg finne ut hvor lenge det tar å kompilere en hver.

Lenke til kommentar

Hvor fort koden kjører har ikke noe å gjøre med hvor lang tid den bruker på å kompileres. Når programmet kjører er kompileringen ferdig for lenge siden, og kildekoden er helt forkastet og utilgjengelig.

Klar over dette, men i noen enkelte tilfeller har en så lite lagringsplass, f.eks 32mb harddisk som har lite plass til f.eks tekstur i 1-2 av 50 brett/nivå, så noen ganger bør det kompileres samtidig en spiller skal til neste brett samtidig på bekostning av bilder per sekund.

 

Nå håper jeg at dere skjønner hvorfor jeg startet dette trådet.

Endret av Force
Lenke til kommentar

Skjønner nå fordi jeg ser at en enkel Hello World tar tre ganger så stort lagring som C++ fordi det inneholder flere bokstaver. Så nå skal jeg finne ut hvor lenge det tar å kompilere en hver.

 

 

Vel, det har egentlig med andre ting enn antall tegn å gjøre, det er mer en slags bi-effekt av at programmet er skrevet i et høynivå-språk. De fleste kompilatorer pleier å spytte ut tidsforbruket når de er ferdige.

Endret av quantum
Lenke til kommentar

 

Hvor fort koden kjører har ikke noe å gjøre med hvor lang tid den bruker på å kompileres. Når programmet kjører er kompileringen ferdig for lenge siden, og kildekoden er helt forkastet og utilgjengelig

Klar over dette, men i noen enkelte tilfeller har en så lite lagringsplass, f.eks 32mb harddisk som har lite plass til f.eks tekstur i 1-2 av 50 brett/nivå, så noen ganger bør det kompileres samtidig en spiller skal til neste brett samtidig på bekostning av bilder per sekund.

 

Nå håper jeg at dere skjønner hvorfor jeg startet dette trådet.

 

 

Men sparer egentlig spilleren noe særlig plass ved å måtte ha et utviklingsverktøy installert i tillegg til spillet? I think not ... Og hvor mye plass tar egentlig maskinkoden ift. kildekoden? Det er ikke store forskjellen. Og enda så lite det er snakk om, når du på et tidspunkt må ha både kildekode og maskinkode tilstede samtidig forbruker du mer diskplass enn om du bare hadde ferdigkompilert maskinkode tilgjengelig. Det som pleier å ta stor plass er det som blir linket inn etter kompilering av biblioteker og slikt, og det må du jo ha liggende installert hele tiden uansett. 

 

Men tja, hvor mye plass du kan klare å spare kommer egentlig mest an på hvor mye "unødvendig" plass spillet bruker i utgangspunktet. Hvis hvert nivå består av en statisk linket exe-fil blir det mye dobbeltlagring som kan elimineres. 

 

Etter kompilering må også koden linkes. Det går ikke nødvendigvis noe raskere enn selve kompileringen.

 

Hvis man skal kunne si noe særlig mer tror jeg det er nødvendig at du avslører litt om arkitekturen i spillet.

Endret av quantum
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...