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

Dav*_*vid 6 algorithm memory-management msvcrt

作为练习,我正在编写一个内存管理器 - 即实现malloc,realloc和free(或new和delete)的代码.我的语言Delphi 的RTL允许轻松替换RTL的内存管理器.对于那些使用C++的人来说,这类似于,但是低于覆盖新的和删除(它挂钩到RTL本身而不是语言特征.)我正在寻找有关其他人拥有的高质量方法的资源.采取了同样的问题.

我知道一些内存管理算法和实现,包括FastMM4(非常复杂),Doug Lea的分配器,Buddy,JeMalloc,TcMallocHoard.我正在搜索有关以下内容的信息:

  • 已知的推荐算法:除上述之外还有哪些其他高质量算法?

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

  • 主要供应商使用什么? 虽然Delphi和C++ Builder的是记录,我无法找到关于由MS VC++,.net或目的C.使用的实现方式中的任何信息(所有文件似乎是级别更高,如NSAutoReleasePool例如,Linux的似乎使用好友).这些供应商似乎不允许他们的RTL像Delphi那样被吸引.我会非常有兴趣阅读他们的实现.