主要编译器供应商使用哪些内存管理算法?

Dav*_*vid 9 delphi algorithm memory-management objective-c msvcrt

这是前一个问题的一个子集.

作为练习,我正在编写一个内存管理器 - 即实现malloc,realloc和free(或new和delete)的代码.我的语言Delphi 的RTL允许轻松替换RTL的内存管理器.对于那些使用C++的人来说,这类似于,但是低于覆盖新的和删除(它挂钩到RTL本身而不是语言功能.)

我正在寻找有关高质量方法的资源,其他人已经解决了同样的问题,并试图找出其他主要编译器供应商使用的算法.虽然Delphi有很好的文档记录,但我找不到有关MS VC++,.Net或Objective C所使用的实现的任何信息.这些供应商似乎(?)不允许他们的RTL像Delphi那样被挂钩.所有文档似乎都是更高级别的,例如NSAutoReleasePool选择一个随机的例子 - 对于这个问题来说太高级了.

主要供应商(Microsoft VC++和.Net以及Apple Objective C)在其运行时库中使用哪些内存管理算法?

一个很好的答案的例子是描述内存管理器实现的文档,例如这个,或者是发布论文的链接.一个有用的答案的例子是算法,'VC++运行时使用Hoard分配器 '.

Ric*_*zaк 1

Objective-C 使用自动引用计数(ARC)。从 iOS5 开始启用。Apple拥有美国专利20030196063“透明本地和分布式内存管理系统”。

Java 使用经过多年发展的复杂垃圾收集方案。请参阅“使用 5.0 Java[tm] 虚拟机调整垃圾收集” http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html