zoukankan      html  css  js  c++  java
  • jemalloc源码结构分析(二):CPU字节对齐算法

    在调用arena_malloc_small过程中,要根据申请内存大小,进行对齐计算,然后分配一个整块儿。算法如下:

    1)定义一个SIZE_CLASSES宏,它主要用于生成后面两个表,small_size2bin与arena_bin_info数组;

    2)根据small_size2bin查找当前申请内存块大小的对齐后的分组位置,再根据该位置到arena_bin_info数组查找对应补齐后的分配真实内存大小;

    例子:需要申请a=1234字节大小的内存

    1)以8个字节分组取整,a/8或a>>3获得small_size2bin中位置pos1;

    2)small_size2bin[pos1]值为索引在arena_bin_info数组中查找,最终arena_bin_info[small_size2bin[pos1]]即对齐后需要分配的内存大小。

    ...
    申请大小范围(字节 ) 对齐粒度大小(字节)被整除 描述                         
    0~8 8 不足8字节的补齐为8字节
    9~16 8 被8整除
    17~128 16 可被16整除
    129~256 32 可被32整除
    257~512 64  
    513~1024 128  
    1025~2048 256  
    2049~3584 512  
  • 相关阅读:
    java课堂作业--异常处理
    Node.js 应用---定时给自己发送邮件
    JAVA课堂作业(2019.10.21)
    添加学生信息系统
    Hdfs的java必会Api操作
    架构之美2
    mybatis知识点03
    mybatis知识点总结02
    mybatis知识点总结01
    第四周周总结
  • 原文地址:https://www.cnblogs.com/feika/p/3676685.html
Copyright © 2011-2022 走看看