C# vs C++ ?
4 отговора
444 прегледа
C# vs C++ ?
nqkoi shte me svetne li proizvoditelnostta na C# po-dobra li e ot tazi na C++ ot gledna tochka na skorostta na izpulnenie na na generiraniq mashinen kod, ili ako v kraina smetka zadavam vuprosa pogreshno - na koi ot dvata ezika shte vurvi po-burzo edi koq si programa, koqto primerno izvurshva predimno matematicheski operacii. ami sustiq vupros za managed/unmanaged code ?
Re: C# vs C++ ?
Managed code се изпълнява по-бавно,поради JIT компилацията,въпреки че тази разлика понякога е трудно забележима,ако кодът е кеширан може почти да не се забелязва.Провери и ако разликата е сериозна използвай unmanaged C++,ако е трудно забележима-може и C#.
Re: C# vs C++ ?
Виж въпроса ти е много подвеждаш. Както знаеш C компилатора ти генерира код вървящ от 386 нагоре, което е гадно понеже не използва новите инструкциите на процесорите.
Докато CIL кода генериран от C# компилатора се run-ва от CLR който може да определи по време на изпълнение какъв ти е процесора AМД, Intel или какъвто е там и да генерира код използващ новите инструкциите на съответния процесор: ММX, 3dNow, SSE , SSE2 и т.н.
Така че напиши си малко тестче и ще видиш за твоя случай как вървят нещата.
Докато CIL кода генериран от C# компилатора се run-ва от CLR който може да определи по време на изпълнение какъв ти е процесора AМД, Intel или какъвто е там и да генерира код използващ новите инструкциите на съответния процесор: ММX, 3dNow, SSE , SSE2 и т.н.
Така че напиши си малко тестче и ще видиш за твоя случай как вървят нещата.
Re: C# vs C++ ?
Не съм видял с очите си тестове, ама ако питаш miscrosoft...
Но действително, като че ли CLR добре се справя.
peace, love, unity
Но действително, като че ли CLR добре се справя.
peace, love, unity
Re: C# vs C++ ?
Не е задължително. Първо, винаги можеш да си пре-компилираш managed code до native binary със Ngen.exe, който идва със фреймуърк-а. Така отпада нуждата от JIT.
Второ, едва ли разликата в скоростта managed/unmanaged има значение за 99% от софтуера. Дори игри на managed code вървят добре (потърси в мсдн информация за Quake 2 .NET -- quake port написан с managed code, който е само със 20% по бавен от оригинала). За повечето стандартни форми/уеб/бази данни приложения разликите във скоростта са назначителни.
Второ, едва ли разликата в скоростта managed/unmanaged има значение за 99% от софтуера. Дори игри на managed code вървят добре (потърси в мсдн информация за Quake 2 .NET -- quake port написан с managed code, който е само със 20% по бавен от оригинала). За повечето стандартни форми/уеб/бази данни приложения разликите във скоростта са назначителни.