gpt4 book ai didi

performance - 垃圾回收的主要性能提升是什么?

转载 作者:行者123 更新时间:2023-12-02 22:42:04 25 4
gpt4 key购买 nike

llvm 文档说:

In practice, however, the locality and performance benefits of using aggressive garbage collection techniques dominates any low-level losses.

那么在使用垃圾收集而不是手动管理内存时,究竟是什么导致了性能提升? (除了明显减少代码编写时间)执行堆压缩的好处仅仅是增加空间局部性和缓存利用率吗?还是有其他方法可以提供更多帮助,例如一次删除所有内容?

最佳答案

在现代处理器上,内存缓存为王。缓存未命中会使处理器停止数百个 CPU 周期,等待慢速总线提供数据。

使缓存有效需要引用的位置。换句话说,如果下一次内存访问接近于前一次,则数据已经在缓存中的可能性很高。

垃圾收集器可以帮助解决这个问题。最大的胜利不是集合,而是它重建对象图和重组数据结构的能力。压实。

想象一下典型的数据结构,一个指向对象的指针数组。它正在慢慢建立,例如,从文件中读取一堆字符串并将它们转换为对象的字段值。分配的对象将分散在地址空间中。由工作对象分隔的数组指向的长生命周期对象,如字符串。稍后迭代该数组将非常慢。

直到垃圾收集器运行并重建数据结构。将所有指向的对象按顺序排列。

现在迭代集合非常快,因为访问元素 N 使得元素 N+1 很可能随时可用。如果不在 L1 缓存中,那么 L2 或 L3(如果有)的可能性很大。

非常大的胜利,这是使垃圾收集与显式内存管理竞争的一项功能。显式类型存在不支持移动对象的问题,因为它会使指针无效。

关于performance - 垃圾回收的主要性能提升是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com