Pergunta

Quais são seus pensamentos sobre eles?

Às vezes eu tenho que escrever código não gerenciado no trabalho, mas com grande escala (de jogos) projetos, ele só se torna muito mais demorado e complicado, que é resolvido por atirar mais pessoas para ele.

código

Você acha que conseguiu é viável para aplicações em grande escala? (Aplicativos como o Photoshop, 3ds Max , Maya , XSI , etc, que são computacionalmente intensivas, mas não têm os requisitos de tempo real de jogos (em um grau).

Foi útil?

Solução

Acho que usando código não gerenciado por motivos de desempenho é um dos piores otimizações prematuras que eu já ouvi falar. Antes de escolher uma tecnologia que é mais difícil de trabalho com apenas porque poderia mais rápido você deve estar muito certo de que você precisa a velocidade.

Além do CLR é tão perto de desempenho unmanged que 99 dos 100 casos should mesmo ter de pensar nisso. E mesmo se você cair no acampamento que precisa o desempenho que você deve escrever a maior parte de seu código no espaço gerenciado e depois mudar para unmanged nas partes que o profiler diz-lhe para.

Sobre os jogos, em especial: tem havido alguns títulos maiores escrito em em mono agora que ganhou desempenho, porque eles poderiam escrever tudo em código manged e não tinha a recorrer a linguagens de script para as partes abstratos como AI.

Outras dicas

Eu acho que você pode fazer grandes aplicações com .NET. Há muitos exemplos lá fora:

  • Peças de VisualStudio são escritos em .NET (por exemplo WinForms editor e editor WPF)
  • Expression Blend é escrito em .NET e WPF
  • Stackoverflow usa .NET e ASP.NET, assim como muitos outros sites.
  • Em VisualStudio 2010, o novo editor (substituto para a implementação atual) é escrito em .NET e WPF

Uma palavra sobre as aplicações de computação intensiva:. Uma vez que o código é compilado para código de máquina pelo intérprete, a maioria dos cálculos devem ser tão rápido como código não gerenciado

Por outro lado, você tem uma série de vantagens:

  • (quase) nenhum vazamento de memória (coletor de lixo)
  • você começa exceções quando algo está errado, nenhum acidente sem informações
  • o código roda igualmente bem em x32 e x64, sem a necessidade de alterar ou recompilar o aplicativo
  • C # é mais fácil de usar do que C ++ (delegado, coleções, LINQ etc)
  • ...

Porque você mencionou PhotoShop ... paint.net é um pacote de gráficos agradáveis ??(não completamente até PhotoShop, mas impressionante, no entanto), escrito em C #.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top