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

标签 objective-c algorithm delphi memory-management msvcrt

这是 a previous question 的一个子集.

作为练习,我正在编写一个内存管理器 - 即实现 malloc、realloc 和 free 的代码(或 new 和 delete。)我的语言的 RTL,Delphi,allows the RTL's memory manager to be replaced easily .对于那些使用 C++ 的人来说,这与重写 new 和 delete 类似,但级别较低(它 Hook 到 RTL 本身而不是一种语言功能。)

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

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

很好 答案的一个例子是描述内存管理器实现的文档,例如 this one ,或已发表论文的链接。 有用答案的一个例子是算法,“VC++运行时使用the Hoard allocator '.

最佳答案

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

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

关于objective-c - 主要编译器供应商使用哪些内存管理算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16297170/

相关文章:

android - 德尔福10 : Problems with SizeOf(string) - Windows vs Android

objective-c - 在 UIViewController 子类中延迟加载 View

ios - 如何获取 iOS 8 中 UICollectionViewCells 的自动布局大小? (systemLayoutSizeFittingSize 在 iOS 8 中返回高度为零的大小)

algorithm - 解决复发复发

java - 两个循环中的增长顺序

delphi - 如何使菜单在单击后保持可见?

xml - 我自己的 SOAP 代码?

通过 manifest.plist 的 iOS 分发 - 在 url 字符串中使用查询字符串参数?

iphone - 无法运行 xcodeproj

algorithm - 带权重的 Karger 算法