哪些内存管理算法是主要编译器供应商所熟知和使用的?

时间:2013-03-19 17:49:56

标签: algorithm memory-management msvcrt

作为练习,我正在编写一个内存管理器 - 即实现malloc,realloc和free(或new和delete)的代码。我的语言的RTL,Delphi,allows the RTL's memory manager to be replaced easily。对于那些使用C ++的人来说,这类似于,但是更低级别,覆盖新的和删除(它挂钩到RTL本身而不是语言功能。)我正在寻找有关高质量方法的资源其他人也遇到了同样的问题。

我了解一些内存管理算法和实现,包括FastMM4(非常复杂),Doug Lea's allocatorBuddyJeMalloc,{{ 3}}和TcMalloc。我正在搜索有关以下内容的信息:

  • 已知的推荐算法:上述哪些高质量算法已经发布?

  • 是否有针对高线程应用程序定制的特定算法?也就是说,在任何锁定点处可能存在高线程争用以进行分配或释放,并且可能在一个锁定点中分配内存线程但在另一个线程中解除分配?大多数算法 - 除了Hoard,JeMalloc和TcMalloc之外 - 似乎都是针对单线程工作而设计的,线程感知只是线程安全,因为在适当的点有锁或其他同步 - 没有特殊的设计。 p>

  • 主要供应商使用什么?虽然Hoard,但我找不到有关MS VC ++,。Net或Objective C使用的实现的任何信息。(所有文档似乎更高级别,例如NSAutoReleasePoolDelphi and C++ Builder's is documented。)这些供应商似乎不允许他们的RTL像Delphi那样被吸引。我非常有兴趣阅读他们的实现。

0 个答案:

没有答案