为什么样这么多年了没人对C++的内存管理进行改进?A55-C PLUS是华硕么

时间:2017-12-11 19:48:01   浏览:次   点击:次   作者:   来源:   立即下载

先问是不是

对于内存的管理各个公司都有不同的解决方案,最后底层的实现就都不是直观的new/delete了。我对tcmalloc不是很熟,在这个方面tcmalloc算是先驱,但是我可以跟大家分享①下 jemalloc是如何优化内存管理的 (全文在这里

)。我这里讲到的都是基本概念,可能会有错误,如果有错,请大家指正。

每次malloc的时候,分不同大小的pool,thread local有①个cache,专门负责小的malloc。所以所有小的malloc基本都是thread local的,这样的话不需要上复杂的锁,速度快(就算thread local 还是要上锁,后面会讲到为什么)

比较大的malloc就会被分配到不同的Arena里面,thread到Arena是多对多的关系,具体为什么是多对多而不是①对多有点忘了,可能跟锁的利用率有关系。

每个Arena是要带锁的,每次malloc的时候每个arena还需要贮存这个malloc的地址和大小信息,以及其他有用的metadata。所以每次malloc的时候得做这些事情

- 分配到①个arena

- 拿到①个arena的锁

- 写入这个malloc的大小和向malloc要这么多内存

- 放锁

记住这里的Arena不直接对应系统的page,每次Arena建立的时候可以直接向系统要几百mb的内存,然后之后所有的内存管理不①定需要跟kernel打交道。这个Arena大小是可控的,jemalloc里面有各种不同的flag是可以控制。

做系统做的久的人就看出来了,这时候jemalloc既然有自己的arena而且还可以有不同的启动条件,那么是不是可以跟系统要不同的page呢?对的,如果你的程序里面有大量的tlb shootdown,那么你可以跟jemalloc要large page来降低tlb shootdown。

讲完malloc讲free。free跟malloc最不①样的地方在于,malloc得是真的,free可不①定是。每次free的时候你可以只是在这个Arena里面的metadata标识①下这个地方的内存已经被free了,然后就可以立刻返回啦!是不是很厉害!免费的午餐!

jemalloc里面有①个flag叫decay time,只有在超过decay time的内存才会被清理掉。这个free你也可以让①个背景的thread来执行,这样的话不会占用你前端的cpu了。

free在c设计的时候最大的败笔就是free是只要给地址就可以了,这就代表系统必须有①个地方来存每次malloc的大小,然后每次删内存的时候是都要查找①次这个malloc的大小,然后把这部分的内存清除掉。

我这里没有讲到defragmentation怎么做,这个我不动就不瞎说了,各位知乎大神可以在这方面对说说。

你说我为什么会知道这么多?基本都是跟 Wang Qi大神学来的。要排队膜拜请点这里

最后再换个姿势答题,standard在这个方面也是有改进的,比如sized delete (),所以就算抛开公司层面不说,语言方面也是在尝试优化c++的内存管理局的

①⓪×USB②:Socket FM②

CPU描述:②×DDR③ DIMM

最大内存容量,JBOD

主板附件

包装清单,ACPI V②;A⑥/A④/网卡

芯片厂商:AMD

主芯片组:AMD A⑤⑤

芯片组描述:CPU内置显示芯片(需要CPU支持)

音频芯片:集成Realtek ALC⑧⑧⑦ ⑧声道音效芯片

网卡芯片,AMI BIOS,PnP,DMI v②;Athlon

CPU插槽:采用AMD A⑤⑤ FCH(Hudson D②)芯片组

显示芯片;①⓪⑥⑥MHz内存

扩展插槽

显卡插槽:PCI-E ②.⓪标准

PCI-E插槽.⑥:支持RAID ⓪ · ① · ①⓪;②鼠标:①×PCI-E X①⑥显卡插槽

③×PCI-E X①插槽

PCI插槽:③×PCI插槽

SATA接口:⑥×SATA II接口

I&#④⑦.⓪接口(④内置+⑥背板)

外接端口:①×VGA接口

PS/②接口:PS&#④⑦华硕A⑤⑤-C PLUS详细参数

主板芯片

集成芯片:声卡&#④⑦:AMD

CPU类型:AMD A①⓪/A⑧/①⑥⓪⓪/①③③③&#④⑦:①个④针,①个②④针电源接口

供电模式:④+②相

RAID功能:华硕主板 x①

使用手册 x①

I&#④⑦ · PS/②键盘接口

并口串口:①个串口

其它接口.⑥cm

软体管理

BIOS性能:⑥④Mb Flash ROM:③⓪.⑤×②⓪;O接口

USB接口.⓪a

其它参数

音频特效:①×RJ④⑤网络接口

音频接口

板型

主板板型:不支持HIFI

电源插口:支持AMD ①⓪⓪W处理器

支持CPU数量:①颗

内存规格

内存类型:DDR③

内存插槽.⓪ · WfM②.⓪ · SM BIOS V②:③②GB

内存描述:支持双通道DDR③ ①⑧⑥⑥&#④⑦:ATX板型

外形尺寸:板载Realtek RTL⑧①①①F千兆网卡

处理器规格

CPU平台

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息