|
2
|
| Sergey Kurenkov · 技术社区 · 16 年前 |
|
|
1
3
Redhat Linux或任何基于Linux的发行版大多使用dl malloc( http://gee.cs.oswego.edu/dl/html/malloc.html ) 对于用户应用程序,如Kirill指出的那样,如果碎片更多地是因为更小的块,那么最好使用单独的内存分配器。 如果用户应用程序很小,可以尝试使用C++布局NeX/Delphi,它可以重写默认分配器模式。( http://en.wikipedia.org/wiki/Placement_syntax ) |
|
|
2
3
作为平台独立的解决方案尝试
Boost.Pool
图书馆。它有
作为平台特定的解决方案,您可以尝试 mallopt 来自glibc库的函数。但据我所知,这对小街区没有帮助。 |
|
3
1
它是一个通用的分配器,但是 Hoard heap 声称“对碎片有严格的限制” [1] : 超级块中的所有块大小相同 班级。通过使用大小为b的幂的类(其中b 大于1)并将请求的大小四舍五入到最接近的大小类,我们将最坏情况的内部碎片绑定到 一个块的系数为b。为了减少外部碎片, 我们回收完全空的超级块,以供任何规模的重复使用。 班级。 不知道是否会有帮助,但很容易尝试一下。 |
|
|
4
0
TCMalloc:Thread-Caching Malloc 对于默认的Linux分配器,已经找到了一个很好的替代方法。 |