我知道,除了在HP-UX link text和Windows XP Low-fragmentation Heap上处理大量小块分配外,用户应用程序还有一个分配器。在HP-UX上,可以调整分配器,在Windows XP上它认为块的大小小于16 K。Linux(或RedHat Linux)上的小块分配器可避免内存碎片
我的问题是,我找不到任何有关在Linux上运行的用户程序(实际上是RedHat Linux)的这种分配器的信息。如果有这样的分配器,我实际上希望找到它可以处理的最大块大小。
更新
我发现jemalloc( http://www.canonware.com/jemalloc/)。它处理小型,大型和巨大的块: http://www.canonware.com/download/jemalloc/jemalloc-latest/doc/jemalloc.html#size_classes。
它不是一个默认的分配器,但在用Hoard分配器测试我的应用程序后,我发现它消耗了17%的内存并且运行速度更快。谢谢! – 2010-03-10 10:08:59