我原以为托管代码中的内存分配是否比 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/