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