普陀网站建设比较实惠,京东电器家电,邢台贴吧网络最新消息,上海头条新闻目录 释放空间free()destroyChunk()freeChunk() 扩容reallocate()memoryCopy() 释放空间free()
当chunk使用完毕后需要释放#xff0c;如果是池化chunk则需要放回池中供下次循环利用#xff0c;如果是非池化的则直接释放对应的物理空间。 下面继续分析释放具体物理空间的des… 目录 释放空间free()destroyChunk()freeChunk() 扩容reallocate()memoryCopy() 释放空间free()
当chunk使用完毕后需要释放如果是池化chunk则需要放回池中供下次循环利用如果是非池化的则直接释放对应的物理空间。 下面继续分析释放具体物理空间的destroyChunk()方法和释放chunk的freeChunk()方法。
destroyChunk()
该方法为抽象方法由具体实现类实现以DirectArena为例 freeChunk()
释放chunk的时候会调用PoolChunkList的free()方法进行处理根据释放后chunk的利用率决定是否向前移动即移动到利用率更低的PoolChunkList如果利用率已经低于1%则需要删除不再使用同时要释放其对应的物理空间。 扩容reallocate()
在使用buf的过程中有时候我们需要扩大容量存放更多的数据或者减少容量reallocate()方法就提供该项功能。 在这个过程中allocate()、free()方法之前已经分析过接下来继续分析数据拷贝的memoryCopy()。
memoryCopy() 至此PoolArena类分析至此完毕感谢阅读。
全文完如果觉得文章有点意思不妨点个“赞”或者“在看”吧您的每一份正反馈都是对三横兰写作的最大肯定感谢阅读_
每天坚持一点点每天进步一点点
坚持是日复一日质变需日积月累
我是三横兰那个三横的兰