华为云计算 云知识 为什么使用“垃圾”回收?

为什么使用“垃圾”回收?

为什么使用“垃圾”回收,主要有如下四大功能:

一、避免常见的内存管理错误

无用单元:不能被访问,但还没有释放。将永远无法被释放(内存泄露)。

悬垂引用:还能被访问,却已经被回收。程序崩溃、未定义行为。

二、责任分离

程序员集中注意力于业务逻辑,而不是内存管理。

三、提高性能

基于bump-pointer的分配回收算法比C语言的基于free-list的malloc和free更快。

有编译器的配合,生成快速路径

四、对并发、多核的硬件资源有利

即使应用程序是单线程的,也可以有多个GC线程帮助它管理内存。

利用异构CPU,将GC线程放在小核上,可以减少能耗。

一些并发无锁数据结构在有垃圾回收的情况下实现更容易。

1. Michael-Scott lock-free queue

2. Read-copy-update (RCU)

上一篇:数字中国创新大赛·鲲鹏赛道(第四期个人赛-初赛) 下一篇:免费ssl通配符证书是什么?有什么好处?如何申请?