1.G2.9 std::alloc运行模式

(1) 每个链表都是20*2,20个切割好,其余的20个作为战备池

(2)分配的范围在8K~128K。

2.embedded pointers

(1)当客户段使用小区快,获得的既是char*(指向某个union obj)。此时虽然客户端没有诸如LString或ZString之类的信息可得知区块大小,但由于区块是给object所用,相当于object大小,object ctor自然不会过分。

(2)union obj {

union obj* free_list_link;

};

改用struct可

3.std_alloc运行一瞥

(1)初始时的16个链表

(2)申请32bytes

申请32bytes,由于pool为空,故所取并成功向pool灌注32*20*2 + RoundUp(0>>4)=1280,从中切出1个区块返回客户,19个区块给list#3,余640备用,

>累计申请量:1280

>pool大小:640

(3)申请64bytes(连线表示链表连在一起)

(4)申请96bytes

战备池pool为空,累计申请量为1280/16=80,调整为8的倍数

累计申请量:1280+96*20*2+80 = 5200

战备池pool大小:96*20*2+80-96*20 = 2000

(5)申请88bytes(连线表示链表连在一起)

挂在88/8-1在10个链表,战备池有剩余,切割88*20,剩余战备池pool大小:2000-88*20=240

(6)连续三次申请88bytes

(7)申请8bytes

战备池pool大小:240-8*20=80

(8)申请104bytes

战备池pool大小为80不足104bytes,80/8-1=9,将战备池pool挂到第9个链表

新申请104*20*2+[累计申请总量5200/16=325调整8的倍数328]

战备池pool大小104*20*2+328-104*2=2408

(9)申请112bytes

累计申请量:9688

pool大小:2408-112*20=168

(10)申请48bytes

累计申请量:9688

战备池pool大小:168-48*3=24

(11)现在假设内存10000bytes,继续申请72bytes

挂在9处的为80bytes,然后剪断,挂在第8个链表,战备池剩余80-72=8

(12)继续申请72bytes

战备池pool大小不足72bytes,然后将战备池8bytes挂在第0个链表;

向右边继续查找,在第10个链表,截取72bytes,战备池剩余88-72=16

(13) 申请120bytes

战备池pool大小16不足120,然后将16bytes/8-1=1挂在第1个链表

向右查找>120,没有申请失败

(14)检讨

G2.9 std_alloc相关推荐

  1. G2.9 std_alloc源码剖析

    1.alloc类简介 template <bool threads, int inst> class __default_alloc_template { private: // Real ...

  2. antv g2字体阴影_antv g2的理解总结

    G2 G2本身是一门图形语法,G2和传统的图表系统(HighCharts,ACharts等)不同,G2是一个基于统计分析的语义化数据可视化系统.它真正做到了让数据驱动图形,让你在使用它时候不用关心绘图 ...

  3. 用python画漂亮图片-python结合G2绘制精美图形

    $.getJSON('top10.json', function (data) { var Frame = G2.Frame; var frame = new Frame(data); var cha ...

  4. G2. 唐纳德与子串 (Hard)kmp

    G2. 唐纳德与子串 (Hard) Time limit per test: 2.5 seconds Memory limit: 512 megabytes 子串的定义是在一个字符串中连续出现的一段字 ...

  5. StreamBox Ripper 将rm转mp3时候出现g2支持的问题

    利用StreamBox Ripper(很多网站有下,很小的绿色软件,使用方便)可以将rm格式的 文件转换成mp3格式的文件但是一般大家安装的是realpalyer 10,StreamBox Rippe ...

  6. 如何修复修复损坏的TAU G2的.u2文件

    今天收到一封来信: "我的高级链路做了一部分了,而且所做的部分在做完之后已经及时保存.但是写完文档后关闭TAU G2的时候出现死机,我就强行关闭了TAU G2.以前也经常发生类似的情况,可是 ...

  7. Vue+G2:Please specify the container for the chart! + Cannot read property ‘appendChild‘ of null

    研究了一下午,终于搞懂了是为啥. 先看一下代码,两个tab标签页,其中一个放chart的挂在节点,但是初始化的时候一直报两个错. <a-tabs default-active-key=" ...

  8. 高亮屏幕一条条线_惠普Z24N G2显示器评测 设计师都想要的好屏幕

    [PConline 评测]一块设计师想要的好屏幕到底是什么样子呢?在我们以往评测的显示器当中,几乎都是清一色的电竞屏,传统的讲究简约和色彩表现的设计师专用屏幕却是很少评测到.可能是这几年来电竞的浪潮太 ...

  9. G2 2.0 更灵活、更强大、更完备的可视化引擎!

    概述 G2作为一款技术产品,自诞生以来,服务于广大的Web工程师群体和一部分数据分析师.一直来,G2 因其易用的语法和扎实的可视化理论基础,广受使用者好评.G2 1.x 的可视化能力已经非常强大,使用 ...

最新文章

  1. 不存在从void转换到sqlist的适当构造函数_拷贝构造函数与赋值构造函数
  2. Linux预备知识(一):进程隔离
  3. 2021年石家庄七中高考成绩查询入口,石家庄市教育考试院官网2020中考查分:成绩查询入口...
  4. java程序动态加载jar包,并调用其中的方法
  5. JQuery模拟二------添加extend函数和简单选择器
  6. Google 出售 Performics
  7. Netty4 学习笔记之三:粘包和拆包
  8. AI制作ICON流程
  9. C语言共用体和枚举的使用
  10. 软件测试人员,究竟怎么霸气过七夕?!大神攻略请笑纳!
  11. ThreadPoolExecutor线程池 —————— 开开开山怪
  12. 全网最精减、安装最简单、无头疼配置的Katago教程,大小才168M,职业水平,散仙订制版
  13. 达达,不能只做京东的达达
  14. [WinError 10060]错误
  15. 《深入浅出4G网络 LTE_EPC》阅读笔记一
  16. 期货开户寻找交易确定性
  17. OpenStack Victoria版——6.2计算节点-Nova计算服务组件
  18. 【收藏】经典shell十三问
  19. 【IAP】IAP在线升级流程
  20. 乐视网:贾跃亭解质押150万股股票系法院司法执行操作

热门文章

  1. ABP官方文档翻译 4.6 审计日志
  2. TypeError: 'str' object is not callable (Python)
  3. Window2003 IIS+MySQL+PHP+Zend环境配置
  4. (八)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
  5. 如何插入一条记录获取插入后的自动增长ID列的方法.
  6. 数据在数组中存储的顺序:小端 OR 大端模式 详解
  7. Lua 中的 function、closure、upvalue
  8. 数据库是.frm,.myd,myi备份如何导入mysql (转)
  9. Flex 4中组件背景设置(填充方式)group为例子
  10. 2014.7.7模拟赛【无线通讯网】