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  
  • 相关阅读:
    第三章 熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习,词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
  • 原文地址:https://www.cnblogs.com/feika/p/3676685.html
Copyright © 2011-2022 走看看