关于我最近遇到的函数,在线或在stackoverflow上有很少的信息zmalloc
.(事实上,这只是zmalloc
关于SO 的第3个标签问题).
我收集了以下信息:
zmalloc自动跟踪并释放不同内存,类似于C++智能指针.
zmalloc显然启用了一些指标,至少在redis源的情况下.
所以我的问题是:
在使用zmalloc而不是malloc时,会失去什么灵活性?即malloc继续提供什么好处,而zmalloc没有?
zmalloc在C11中不标准吗?这是一个定制功能吗?
Peter - Rein.. 10
看起来zmalloc是redis-tools(https://github.com/antirez/redis-tools)的一部分.redis是一种将内容保存在内存中的数据库(http://redis.io/).
通常会开发malloc替换,因为某些目标系统不提供合适的malloc,或者因为调用者需要额外的功能.我认为zmalloc是系统malloc/free的一个非常简单的包装器,只是跟踪分配的总内存.没有自动免费参与.您指向的帖子还解释了需求:数据库可以配置为不使用超过一定量的内存,因此需要跟踪总体消耗.
看起来zmalloc是redis-tools(https://github.com/antirez/redis-tools)的一部分.redis是一种将内容保存在内存中的数据库(http://redis.io/).
通常会开发malloc替换,因为某些目标系统不提供合适的malloc,或者因为调用者需要额外的功能.我认为zmalloc是系统malloc/free的一个非常简单的包装器,只是跟踪分配的总内存.没有自动免费参与.您指向的帖子还解释了需求:数据库可以配置为不使用超过一定量的内存,因此需要跟踪总体消耗.