跨平台c开发库tbox:内存库使用详解
TBOX是一个用c语言实现的跨平台开发库。 针对各个平台,封装了统一的接口,简化了各类开发过程中常用操作,使你在开发过程中,更加关注实际应用的开发,而不是把时间浪费在琐碎的接口兼容性上面,并且充分利用了各个平台独有的一些特性进行优化。 这个项目的目的,是为了使C开发更加的简单高效。 源码仓库:https://github.com/tboox/tbox 在线文档:https://tboox.io/#/zh-cn/ 内存整体架构 TBOX的内存管理模型,参考了linux kernel的内存管理机制,并在其基础上做了一些改进和优化。 大块内存池:large_pool 整个内存分配的最底层,都是基于large_pool的大块内存分配池,类似于linux的基于page的分配管理,不过有所不同的是,large_pool并没有像linux那样使用buddy算法进行(2^N)*page进行分配,这样如果需要2.1m的内存,需要分配4m的内存块,这样力度太大,非常浪费。 因此large_pool内部采用N*page的基于page_size为最小粒度进行分配,因此每次分配顶多浪费不到一页的空间。 而且如果...
