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  
  • 相关阅读:
    构造函数
    Php基础知识测试题答案与解释
    bootstrap简介
    ajax删除数据(不跳转页面)
    ajax基础部分
    Jquery弹出窗口
    JSON
    Jquery之JSON的用法
    Jquery基本用法
    php购物车(练习)
  • 原文地址:https://www.cnblogs.com/feika/p/3676685.html
Copyright © 2011-2022 走看看