托管代码是否比非托管代码慢?

时间:2014-04-21 10:14:18

标签: c++ .net

这只是出于好奇心的问题。虽然通常会考虑框架和执行中涉及的步骤,但我会说是的。我还想考虑内存/光盘访问和网络等因素限制非托管代码的性能。

1 个答案:

答案 0 :(得分:3)

引用Herb Sutter

"首先,JIT编译不是主要问题。根本原因更为根本:托管语言进行了深思熟虑的设计权衡,以优化程序员的工作效率,即使这种情况从根本上处于紧张状态并且以牺牲性能效率为代价。"

在“预防”和“治疗”之间始终存在着不可避免的根本区别 - 在性能优化方面,C ++总是选择“预防”,而托管语言则通过上述英勇的努力选择“治愈”等等。但旧的盎司/英镑说是不可避免的;你不能打败预防(部分是因为你可以在第一次做预防之后总是加上治疗,但不能反过来),如果你主要关心表现和控制,那么你应该使用一种旨在优先考虑它的语言前面,就是这样。

您可以参考此文章以获得更清晰

http://www.i-programmer.info/professional-programmer/i-programmer/4026-the-war-at-microsoft-managed-v-unmanaged.html