16. oktober 2002 - 11:36Der er
7 kommentarer og 1 løsning
C# uden .net
Hej eksperter
Jeg har et spørgsmål angående C# performance sammenlignet med C++.
I spil-industrien har C++ været et populært sprog at udvikle i, fremfor eksempelvis java, fordi det kompileres direkte til maskinkode, og derved vinder i performance. Mig bekendt bliver C# kompileret til MSIL før det bliver til maskinkode - ihvert fald i .net sammenhæng. Men er det muligt at kompilere C# direkte til maskinkode ligesom C++?
Det er sjældent C# omtales uden det er i forbindelse med .net men kan C# "stå på egne ben"? Vil man kunne skrive et spil i C# med samme performance som C++? Kan C# erstatte C++?
Men det er som alt andet en sandhed med modifikationer. Som du selv er inde på, så kompileres c# til MSIL der ved kørsel JIT kompileres til native kode. Denne kompilering kan for så vidt sagtens foretages på forhånd og du kan altså sagtens få c# til at generere native kode. At du alligevel ikke kan få den samme performance som med c++ skyldes at .Net native kode alligevel afvikles indenfor rammerne af .Net runtime miljøet der sikrer typesikkerhed, hukommelsesreferering, garbage collecting, etc. og alle disse ting tager naturligvis performance.
Du kan, mig bekendt, ikke kompilere C# til native kode der afvikles på den gammeldags måde uden om runtime miljøet og du kommer nok aldrig til det, da c# afhænger af mange ting som runtime miljøet supplerer, f.eks. garbage collection og reflection gennem metadata.
Helt samme performance som c++ vil c# aldrig få, men derfor skal man nok ikke afskrive det til spil udvikling. Det er jo ofte grafikken der er performance krævende i spil og denne beregnes jo oftets af grafikkortet og selvom det er marginalt langsommere at kalde DirectX gennem .Net end det er gennem c++, så er det nok kun et spørgsmål om tid før vi får en udgave af DirectX der er optimeret til .Net frameworket. Fot lige at opsummere på dit spørgsmål, så skal du altså ikke regne med nogensinde at komme til at kompilere c# til andet en kode der afvikles under .Net runtime miljøet. Du skal dog ikke afskrive spiludvikling, da MS sandsynligvis vil gøre deres til at gøre .Net platformen attraktiv for spiludviklere!
Bliver Java brugt til spil? i så fald hvilke spil er blevet udviklet i java?
Synes godt om
Ny brugerNybegynder
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.