1
kingddc314 2016-04-20 13:07:00 +08:00 via Android 1
可以参考 jemalloc 之类
|
2
aaaron7 2016-04-20 13:22:36 +08:00 1
用 pool 啊,常规思想
|
3
eliteYang 2016-04-20 13:29:37 +08:00 1
可以使用 jemalloc 或者 tcmalloc 来处理,例如定时回收啊,托管内存管理,内存池,我们用了定时回收,不过在 win7 上表现不明显,现在 windows 的内存管理越做越好了, linux 上比较明显。可以参考我们服务器框架中的使用, https://github.com/ketoo/NoahGameFrame
|
4
xylophone21 2016-04-20 13:54:48 +08:00 1
从内存碎片这个角度来讲,作为一个通用的 malloc
自己实现能做的 malloc 都能做, malloc 能做到自己实现却不能做,维度不同啊。 |
5
fy 2016-04-20 14:19:53 +08:00
直接用现成的分配器库即可
|
6
yuriko 2016-04-20 18:48:31 +08:00
我记得这是我以前 CSAPP 的课后作业
|
7
owt5008137 2016-04-20 22:32:48 +08:00 via Android
想要通用,看看 jemalloc 和 tcmalloc 的设计。然后参考它搞个适用你们项目的出来。
https://www.owent.net/QoH5w + 源码 其实现在的 ptmalloc 性能也挺不错的,前提是开编译优化以后 想要更高性能,自己做对象池。可以参考这个 https://github.com/owent-utils/c-cpp/blob/master/include/DataStructure/StaticIdxList.h 这是设计于用在共享内存里的,如果不需要支持共享内存可以参考这个 https://github.com/owent-utils/c-cpp/blob/master/include/DataStructure/DynamicIdxList.h |