C# vs C++ ?

4 отговора 444 прегледа
#1

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 ?

Отговор
в отговор на student #2

Re: C# vs C++ ?

Managed code се изпълнява по-бавно,поради JIT компилацията,въпреки че тази разлика понякога е трудно забележима,ако кодът е кеширан може почти да не се забелязва.Провери и ако разликата е сериозна използвай unmanaged C++,ако е трудно забележима-може и C#.

Отговор
в отговор на Vlady #3

Re: C# vs C++ ?

Виж въпроса ти е много подвеждаш. Както знаеш C компилатора ти генерира код вървящ от 386 нагоре, което е гадно понеже не използва новите инструкциите на процесорите.

Докато CIL кода генериран от C# компилатора се run-ва от CLR който може да определи по време на изпълнение какъв ти е процесора AМД, Intel или какъвто е там и да генерира код използващ новите инструкциите на съответния процесор: ММX, 3dNow, SSE , SSE2 и т.н.

Така че напиши си малко тестче и ще видиш за твоя случай как вървят нещата.

Отговор
в отговор на rr #4

Re: C# vs C++ ?

Не съм видял с очите си тестове, ама ако питаш miscrosoft...

Но действително, като че ли CLR добре се справя.

peace, love, unity
Отговор
в отговор на Vlady #5

Re: C# vs C++ ?

Не е задължително. Първо, винаги можеш да си пре-компилираш managed code до native binary със Ngen.exe, който идва със фреймуърк-а. Така отпада нуждата от JIT.

Второ, едва ли разликата в скоростта managed/unmanaged има значение за 99% от софтуера. Дори игри на managed code вървят добре (потърси в мсдн информация за Quake 2 .NET -- quake port написан с managed code, който е само със 20% по бавен от оригинала). За повечето стандартни форми/уеб/бази данни приложения разликите във скоростта са назначителни.

Отговор