Q
託管vs非託管
3
A
回答
3
我認爲使用非託管代碼的性能的原因是最差的一個過早的優化我聽說過,在你選擇一些難以工作的技術之前,你應該確信你需要這個速度。
除了CLR非常接近無法滿足的性能,在100個案例中,有99個甚至不必考慮這個問題,即使你進入了需要性能的陣營,你也應該將大部分代碼寫入托管空間,然後切換到解除部分你的分析器告訴你。
關於特別是遊戲:已經有上單writen在現在獲得的表現,因爲他們可以寫在manged代碼,並沒有一切不得不求助於腳本語言對於像抽象的部分大一些頭銜AI。
3
我想你可以用.NET來做大型應用程序。有許多例子在那裏:
- VisualStudio中的零件都寫在.NET(如編輯的WinForms和WPF編輯)
- Expression Blend的是寫在.NET和WPF
- 使用#1 .NET和ASP .NET,就像許多其他網站一樣。
- 2010年VisualStudio中,新的編輯器(替代目前的實現),是寫在.NET和WPF
一個字有關計算密集型應用:由於代碼被解釋編譯成機器代碼,最計算應該與非託管代碼一樣快。
在另一方面,你有很多的優點:
- (幾乎)沒有內存泄漏(垃圾收集器)
- 你會得到異常的時候什麼是錯的,沒有崩潰沒有信息
- 的代碼在x32和x64上運行得同樣好,無需更改或重新編譯應用程序
- C#比C++更容易使用(代理,集合,LINQ等)
- ...
1
因爲你提到的PhotoShop ... paint.net是一個不錯的圖形軟件包(沒有達到到Photoshop,但仍然令人印象深刻),在C#編寫。
相關問題
- 1. DirectX託管或非託管?
- 2. 將非託管/非託管成員添加到託管類
- 3. LNK 2028 - 2019 /託管和非託管C++? (VS 2008)
- 4. Gdiplus在C++託管或非託管?
- 5. C++託管到非託管轉換
- 6. C++託管和非託管靜態庫
- 7. 非託管結構實例在託管
- 8. 託管代碼在非託管
- 9. 非託管內存和託管存儲
- 10. 託管代碼與非託管代碼
- 11. 將非託管轉換爲託管過程中的託管
- 12. IIS託管 - >非託管 - >託管 - > StackOverflowException
- 13. 非託管char *數組託管System ::字符串託管C++
- 14. 堆vs託管堆
- 15. 傳遞非託管的指針非託管對象在託管類C++/CLI
- 16. 非託管的DLL
- 17. 託管可執行文件中的非託管庫導致託管異常
- 18. 託管託管代理VSTS
- 19. 傳遞包含在管理類非託管指針字段非託管代碼
- 20. CDI與非託管對象
- 21. 使用非託管庫
- 22. 獲取非託管模式
- 23. 非託管內存泄漏
- 24. 非託管對象的GC.AddMemoryPressure
- 25. 在非託管C++代碼
- 26. 從非託管代碼
- 27. 非託管C++ .NET中
- 28. 非託管dll代碼
- 29. 預加載非託管dll
- 30. 非託管調用堆棧
該常見問題指出,應該問的問題可以'回答',而不僅僅是討論。至少這應該是社區維基。投票結束。 – 2009-02-11 19:33:40
確定已更改爲wiki。 – 2009-02-11 19:35:21
FFS爲什麼關閉它?這是一個wiki,非常有用。 – 2009-02-11 19:58:04