Hej >Det blir då uppenbart att om man vill köra programmet krävs mer arbete och detta >utförs av JIT, Just In Time, -kompilatorn som kompilerar MSIL koden till exekverbar >kod för aktuell CPU arkitektur och operativsystem. <b>Detta ger programmeraren möjligheten att koncentrera sig på funktionaliteten i koden i stället för systemberoende detaljer. Val av språk behöver inte ta hänsyn till prestanda då all kod genererar MSIL kod." Roggan:Antagande
Är detta ett korrekt antagnade när det gäller .Net eller har någon nån synpunkt.
"Val av språk är dock av underordnad betydelse i .Net som utvecklings miljö. Vid kompilering av koden i .Net skapas inte omedelbart någon exekverbar kod för ett visst operativsystem. I stället skapas en pseudokod, MSIL. Denna kod är inte specifik för en viss kod, operativsystem eller CPU arkitektur.
Det blir då uppenbart att om man vill köra programmet krävs mer arbete och detta utförs av JIT, Just In Time, -kompilatorn som kompilerar MSIL koden till exekverbar kod för aktuell CPU arkitektur och operativsystem.
Detta ger programmeraren möjligheten att koncentrera sig på funktionaliteten i koden i stället för systemberoende detaljer. Val av språk behöver inte ta hänsyn till prestanda då all kod genererar MSIL kod."
RogerSv: Antagande
Kommentar:
Kompileringen sker bara en gång och det är första gången programmet körs. Nästa gång programmet körs så avnänds den fördigkompilerad koden. Det bästa med JIT:en är att den kan kompilera på metodnivå, det vill säga enbart de metoder som körs kompileras. Detta leder till att inte hela programmet behöver laddas upp i minnet.
/Fredrik Normén NSQUARED2
http://www.nsquared2.netSv: Antagande
</b>
detta behöver ju inte vara helt sant ,
kompilatorn för ett visst språk kan ju vara dåligt skriven och därmed generera överflödig msilkod vilket skulle resultera i dålig nativekod när programmet väl körs..
precis på samma sätt som att delphikod som kompilerats till native kod kan vara slöare än nativekod från vc++ kompilatorn...
men om man kollar på vb.net / c# så ska väll msilkoden bli ganska likvärdig med defaultkompilatorerna..
[edit]
men det kan ju hända att jit kompilatorn kan utföra massa optimeringar själv så att dålig msilkod kanske inte omvandlas till lika dålig nativekod..
någon som vet om jit kompilatorn gör några större optimerignar?
[/edit]
//RogerSv: Antagande
>någon som vet om jit kompilatorn gör några större optimerignar?
Står lite om det i denna arikel
http://msdn.microsoft.com/library/en-us/dndotnet/html/highperfmanagedapps.asp?frame=true
Här är ett utdrag:
Other JIT Optimizations
The JIT compiler does a number of other optimizations: constant and copy propagation, loop invariant hoisting, and several others. There are no explicit programming patterns that you need to use to get these optimizations; they are free.
/Fredrik Normén NSQUARED2
http://www.nsquared2.net