När ett program byggs med hjälp av en kompilator så spottar denna ut maskinkod som sedan körs i form av en .EXE-fil eller dylikt. Olika kompilatorer är olika bra på att generera optimerad kod och det finns även möjlighet att tala om för kompilator om man vill ha ett stort program som är snabbt eller ett litet program som då kanske är lite slöare (generaliserat).
Problemet i dag är att många programmerare och företag inte bryr sig om hur maskinkoden eller hur optimerat programmet i fråga är och här finns det en hel del att göra. Men frågan är ju såklart, hur kan man optimera programmet när man inte har tillgång till källkoden?
Jo min tanke är enligt följande:
Erbjud en webbtjänst som låter människor ladda upp sina program alternativt söka igenom program på hårddisken som är dåligt optimerade och erbjud sedan att optimera dessa! Extra trevligt kan ju vara också att berätta hur mycket pengar man sparar på att optimera programmet i fråga.
Programmet optimeras genom att identifiera assembler-instruktioner som tar mycket cpu cycles och sedan byts dessa ut mot instruktioner som tar mindre cpukraft.
Exempel på detta är:
mov eax, 0 –> miljövänligare version –> xor eax, eax
Samt loop unwinding och mycket mer. Wikipedia har en hel del information om kompilatoroptimering.
Så vad väntar du på, lusläs bibeln: Intelmanualen.
Först av allt, kul grej med att erbjuda gratis affärsideer =)
Intressant, skulle definitivt kunna tänka mig att använda en sån tjänst, men inte av miljövänlighets-skäl. Hur mycket el drar en moderna processor egentligen under max-belastning, 90w? Säg att du optimerar det med 30%, det är fortfarande bara ca 30w energivinst.
Dessutom skulle det vara rätt krångligt att ladda upp alla sina exe på nätet. Men man skulle kunna göra ett litet program som söker igenom disken efter de programmen som används mest, så får man välja på en lista vilka man program man känner sig bekväm med att optimera.
Vänliga hälsningar,
Poyan
Tack för din input Poyan! Som du säger så måste det så klart göras i stor skala (tänk företag) etc för att det ska bli grönare.