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

发表时间:2017-12-11 19:48:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《求大神告知这个电脑还有升级的必要么?谁帮我讲一下amd的主板和cpu 就像这样讲比如英特尔主板z能超频cpuk能超频这样讲详细点可以的话英特尔也》相关知识。本篇中小编将再为您讲解标题为什么样这么多年了没人对C++的内存管理进行改进?A55-C PLUS是华硕么。

先问是不是

对于内存的管理各个公司都有不同的解决方案,最后底层的实现就都不是直观的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平台

编后语:关于《为什么样这么多年了没人对C++的内存管理进行改进?A55-C PLUS是华硕么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《一公斤异形的血液能否腐蚀到地心?玩异形大战铁血战士显卡发热!10》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题