LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 845|回复: 0

请教一下glib库的slab内存管理如何释放?

[复制链接]
发表于 2010-6-11 11:16:28 | 显示全部楼层 |阅读模式
glib库的slab内存管理我有一个疑问,不知如何解决.slab的实现在gslice.c里面,在这个文件里面,定义了一个全局的内存分配器allocator,它在需要的时候被初始化.比如,在调用g_node_new的时候,它就用到了这个allocator,分配内存;而在调用g_node_destory的时候,它只会把这段内存标记为可用而不是真正的释放,在同进程内使用同样的分配策略请求内存固然没问题,还可以得到效率提升.但是,一旦这些内存被用过,这些空间就只能由glib的内存分配器统筹,而其它库以及其它函数都不能使用.这样,就导致了另外一个问题,当一个程序不仅仅使用了glib,还使用了其它库,而有其它库并不依赖于glib的内存管理,那么,glib库用过的内存就不能供其它过程使用(这和内存泄漏有何区别呢?).
如此以来,当程序运行时间的延续,程序将没有足够的内存可用.
所以,我想知道,对这么个allocator,glib是不是有相应的清理函数可用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表