欲提升计算性能,就要将CPU从垃圾回收机制中解放出来!

译文
系统
你可能没注意到,你的计算机在后台拼命组织其内存系统。除了许多任务外,CPU还要执行一项名为“垃圾收集”的操作:识别并删除应用程序中冗余或无关的数据,释放额外的内存空间。

[[265091]]

【51CTO.com快译】你可能没注意到,你的计算机在后台拼命组织其内存系统。除了许多任务外,CPU还要执行一项名为“垃圾收集”的操作:识别并删除应用程序中冗余或无关的数据,释放额外的内存空间。

垃圾收集旨在使程序员无须手动处理这些不必要的数据,但CPU负责处理的自动化过程耗用大量计算能力,占CPU花费在应用程序上的总时间的10%或更多。

现供职于谷歌的Martin Maas在加州大学伯克利分校攻读博士期间,设计出了一种新型装置,可以将CPU从垃圾收集任务中解放出来。这种设计在4月23日发表于IEEE Micro的一篇论文中有所描述。

Maas特别指出,历来被分配垃圾收集这项任务的CPU从来不是专门为该任务而设计的。他解释道:“CPU旨在很灵活,可以运行各种应用程序。因此,它们比较庞大,耗电量相当大。”

Maas及其同事改而开发出一种紧凑的加速器单元,仅需少量的芯片面积和耗电量。它可以添加到CPU中,如同将众多现代处理器芯片集成到图形处理单元中。

Maas说:“软件应用程序在CPU上运行时,加速器单元为应用程序执行垃圾收集任务。原则上,这意味着你可以构建一个系统,软件根本不用担心垃圾收集,只管继续使用可用内存。”

值得注意的是,加速器单元收集垃圾起来比CPU的传统方式更高效。比如说,CPU要按特定顺序完成一些垃圾收集操作,而新加速器单元的特点是,这些操作不需要按顺序执行。由于同时执行大量内存操作,它在垃圾收集方面比CPU更高效。

Maas的团队将加速器与小小的CPU核心比较后发现,加速器的性能提高了18倍。在耗电量方面,他们估计加速器将垃圾收集所需的耗电量减少了15%。

将垃圾收集这项任务交给加速器单元可以提高计算机的工作效率。Maas指出,虽然CPU将10%的计算能力专门用于垃圾收集看似不多,但放眼全球,这是庞大的计算资源。

他还指出,许多垃圾收集机制可能导致不可预测的停顿,即计算机系统暂停一小段时间以清理内存。他说:“虽然你通常不会有所注意,但在你要求系统反应很灵敏的情况下,这可能是个问题,程序员不遗余力地避免这种停顿,为此常常在垃圾收集上花费更多的CPU周期。”新的加速器单元同时解决了这两个问题,为更高效的计算铺平了道路。

研究人员在论文中表示,这种新装置有望成为未来系统的一个常见部件,因而CPU不需要被垃圾收集所拖累。

原文标题:For Better Computing, Liberate CPUs From Garbage Collection,作者:Michelle Hampson

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2010-05-06 10:48:49

ibmdwDB2

2016-08-11 15:02:54

Java垃圾回收机制内存

2023-02-08 08:40:21

2017-06-12 17:38:32

Python垃圾回收引用

2009-06-23 14:15:00

Java垃圾回收

2017-08-17 15:40:08

大数据Python垃圾回收机制

2010-09-25 15:33:19

JVM垃圾回收

2017-03-03 09:26:48

PHP垃圾回收机制

2016-08-11 14:49:34

Java垃圾回收机制异常

2021-11-05 15:23:20

JVM回收算法

2011-06-28 12:39:34

Java垃圾回收

2015-06-04 09:38:39

Java垃圾回收机

2011-07-04 16:48:56

JAVA垃圾回收机制GC

2010-09-25 15:26:12

JVM垃圾回收

2010-09-16 15:10:24

JVM垃圾回收机制

2021-05-27 21:47:12

Python垃圾回收

2011-06-28 10:19:40

C#开发

2023-03-26 22:48:46

Python引用计数内存

2024-10-28 13:18:54

2010-10-13 10:24:38

垃圾回收机制JVMJava
点赞
收藏

51CTO技术栈公众号