首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    跨平台c开发库tbox:内存库使用详解

    slot的顺序遍历分配算法优化 我们这里主要用到了gcc的几个内置函数: __builtin_clz:计算32位整数前导0的个数 __builtin_ctz:计算32位整数后置0的个数 __builtin_clzll...:计算64位整数前导0的个数 __builtin_ctzll:计算64位整数后置0的个数 其实这四个类似,我们这里就拿第一说明好了,为什么要使用__builtin_clz呢?...比如有一个32位的位段信息整数:x,计算对应空闲位0的索引,主需要:__builtin_clz(~x) 简单吧,由于__builtin_clz这些内置函数,gcc用汇编针对不同平台高度优化过的,计算起来相当的快...n--; } return n; } 说白了,就是每次对半开,来减少判断次数,比起每次一位一位的枚举遍历,这种已经是相当高效了,更何况还有__builtin_clz...如果某个位段不是0xffffffff,则通过__builtin_clz(~x)计算实际的空闲块索引,并进行实际的分配。 最后如果这个的32位的位段没有被分配满,可以把它进行缓存,来为下次分配做预测。

    1.3K10
    领券