Domanda

Quali sono i tuoi pensieri su di loro?

A volte devo scrivere codice non gestito sul posto di lavoro, ma con (giochi) progetti su larga scala, diventa solo molto più in termini di tempo e complicata, che si risolve lanciando più persone a questo.

Pensi codice gestito è vitale per le applicazioni su larga scala? (Applicazioni come Photoshop, 3ds Max , Maya , XSI , ecc, che sono computazionalmente intensive, ma non hanno i requisiti in tempo reale di giochi (in misura).

È stato utile?

Soluzione

Credo che utilizzando il codice non gestito per motivi di prestazioni è uno dei peggiori ottimizzazioni premature che abbia mai sentito parlare. Prima di scegliere una tecnologia che è più difficile lavorare con solo perché potrebbe più veloce si dovrebbe essere molto sicuro che è necessario la velocità.

Oltre al CLR è così vicino alle prestazioni unmanged che il 99 su 100 casi non dovrebbero nemmeno bisogno di pensarci. E anche se si rientra in campo che ha bisogno di prestazioni si dovrebbe scrivere la maggior parte del codice nello spazio gestito e quindi passare a unmanged nelle parti che il profiler ti dice.

A proposito di giochi, in particolare: ci sono stati alcuni titoli più grandi writen in su mono ora che guadagnato le prestazioni, perché potevano scrivere tutto nel codice manged e avuto per ricorrere a linguaggi di scripting per le parti astratte come aI.

Altri suggerimenti

Penso che si possa fare applicazioni di grandi dimensioni con .NET. Ci sono molti esempi là fuori:

  • Parti di VisualStudio sono scritte in .NET (ad esempio WinForms editore e redattore WPF)
  • Expression Blend è scritto in .NET e WPF
  • StackOverflow utilizza .NET e ASP.NET, come fanno molti altri siti.
  • In VisualStudio 2010, il nuovo editor (sostituzione per l'implementazione corrente) è scritto in .NET e WPF

Una parola sulle applicazioni di calcolo intensive:. Dal momento che il codice viene compilato in codice macchina dall'interprete, la maggior parte dei calcoli dovrebbero essere veloce come il codice non gestito

D'altra parte si ha un sacco di vantaggi:

  • (quasi) senza perdite di memoria (garbage collector)
  • si ottiene eccezioni quando qualcosa non va, nessun crash senza informazioni
  • il codice viene eseguito altrettanto bene su x32 e x64, senza la necessità di cambiare o ricompilare l'applicazione
  • C # è più facile da usare rispetto C ++ (delegato, collezioni, LINQ etc)
  • ...

Perché lei ha citato PhotoShop ... paint.net è un bel pacchetto di grafica (non abbastanza fino a Photoshop, ma comunque impressionante), scritto in C #.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top