2009-02-11 2 views
3

Что вы думаете о них?Удаленные команды:

Иногда мне приходится писать неуправляемый код на работе, но с крупномасштабными (играми) проектами он просто становится более трудоемким и сложным, что решается, бросая в него больше людей.

Считаете ли вы, что управляемый код жизнеспособен для крупномасштабных приложений? (приложения, такие как Photoshop, 3ds Max, Maya, XSI и т.д., которые являются интенсивными вычислениями, но не имеют потребности в реальное время игр (до некоторой степени).

+0

В FAQ часто задают вопросы о том, что можно «ответить», а не просто обсуждать. По крайней мере, это должна быть вики сообщества.Голосование закрывается. –

+0

Ok изменен на wiki. –

+0

FFS почему вы его закрыли? Это вики и очень полезно. –

ответ

3

Я думаю, что с помощью неуправляемого кода по соображениям производительности является одним из худших преждевременная оптимизация, о которой я когда-либо слышал. Прежде чем выбрать какую-либо технологию, с которой сложно работать, просто потому, что она может быть быстрее, вы должны быть уверены, что вам нужна скорость.

Кроме того, CLR настолько близок к невыполненной производительности, что 99 из 100 случаев не должны даже думать об этом. И даже если вы попадаете в лагерь, который нуждается в производительности, вы должны написать большую часть своего кода в управляемом пространстве, а затем переключиться на без изменений в частях об этом говорит ваш профилировщик.

О играх, в частности: там были несколько превышают названий прописаны в на моно теперь получил производительности, так как они могли бы написать все, что в сведущих коде и не должны были прибегать к скриптовым языкам для абстрактных частей, как AI.

+0

Спасибо. Да, я не имел в виду использование неуправляемых в управлении. Просто указывал на то, что большинство материалов, используемых в играх или даже в крупных приложениях, как я упоминал выше, неуправляемы, но задавался вопросом, можно ли создать приложение того же калибра, используя управляемый код. –

+0

это очень возможно, и его обычно намного проще, чем в неизмененном коде. вы не верите, какая разница, сборщик мусора, если вы не использовали ранее управляемые и неуправляемые. кроме gc вы gane alot других инструментов productivty в управляемом коде – LDomagala

+0

Да, я использую управляемый для большинства моих вещей, и я не вижу большой разницы, но я никогда не пытался писать крупномасштабное приложение, такое как Photoshop. :) –

3

Я думаю, вы можете делать большие приложения с .NET. Есть много примеров там:

  • Часть VisualStudio написана в .NET (например, WinForms редактор и редактор WPF)
  • Expression Blend написано в .NET и WPF
  • Stackoverflow использует .NET и ASP .NET, как и многие другие сайты.
  • В VisualStudio 2010, новый редактор (замена для текущей реализации) записывается в .NET и WPF

Одно слово о вычислительно интенсивных приложений: Так как код компилируется в машинный код с помощью переводчика, наиболее вычисления должны быть такими же быстрыми, как неуправляемый код.

С другой стороны, у вас есть много преимуществ:

  • (почти) нет утечек памяти (сборщик мусора)
  • вы получаете исключения, когда что-то не так, не аварии без информации
  • в код работает одинаково хорошо на x32 и x64, без необходимости изменения или повторной компиляции приложения
  • C# проще в использовании, чем C++ (делегат, коллекции, LINQ и т.д.)
  • ...
1

Потому что вы упомянули PhotoShop ... paint.net - хороший графический пакет (не совсем до PhotoShop, но тем не менее впечатляющий), написанный на C#.

+0

Спасибо, это единственный, кого я знал :) –

Смежные вопросы