.net - .NET 内存管理在托管代码中是否比在 native 代码中更快?

标签 .net performance memory clr vm-implementation

我原以为托管代码中的内存分配是否比 native 代码中更快 - but there seems to be some controversy .也许虚拟机下的内存管理会更快,因为没有对操作系统的上下文交换调用,但后来我发现虚拟机本身需要定期调用操作系统以获得更多内存,并且它的管理开销是内存本身而不是操作系统。

与其像我一样做出未经证实的断言,请提供支持您立场的引用资料的链接。

最佳答案

阅读 http://msdn.microsoft.com/en-us/library/ms973852.aspx

它详细介绍了 .NET 中内存分配的工作原理,并将其与 C++ 模型进行了简要比较。

总而言之,.NET 中的内存分配涉及获取当前堆栈点作为对象的地址,并将对象的数据大小添加到堆栈指针。相比之下,C++ 必须在已释放指针列表中搜索足够大的堆区域以容纳对象。因此,在大多数情况下,.NET 会更快。

关于.net - .NET 内存管理在托管代码中是否比在 native 代码中更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173765/

相关文章:

c# - 格式化特定数据点的 Microsoft Chart Control X 轴标签

c# - 使用 Windows 编解码器解码音频文件

performance - MDX选择日期维度消耗大量内存

java - 如何将 byte[] 转换为 bytebuffer native 内存?

performance - 查询运行速度快,但报告呈现速度慢 : how to debug this?

mysql - CakePHP 的内存分配问题

.net - 如何为解决方案中的所有项目引用一次程序集

c# - 为什么 .NET 中的表达式类型允许从函数构造但不允许从函数转换?

ios - 苹果是否批准存在内存泄漏的 iOS 应用程序?

javascript - 如何从 IonMonkey 获取汇编代码