垃圾回收算法(6)-增量算法

栏目: IT技术 · 发布时间: 5年前

内容简介:在垃圾回收过程中,应用软件处于一种Stop the World的状态。在Stop the World的状态下,应用程序的所有线程都会挂起,暂停一切工作,等待垃圾回收的完成。如果垃圾回收时间过长,应用程序会被挂起很久,将严重影响用户体验或者系统的稳定性。为了解决这个问题,即对实时垃圾手机算法的研究直接导致了增量收集算法的诞生。最初,为了进行实时垃圾收集,可以设计一个多进程的运行环境,比如用一个进程执行垃圾收集工作,另一个进程执行程序代码。这样一来,垃圾收集工作看上去仿佛是在后台悄悄的干活,不会打断程序代码的运

在垃圾回收过程中,应用软件处于一种Stop the World的状态。在Stop the World的状态下,应用程序的所有线程都会挂起,暂停一切工作,等待垃圾回收的完成。如果垃圾回收时间过长,应用程序会被挂起很久,将严重影响用户体验或者系统的稳定性。为了解决这个问题,即对实时垃圾手机算法的研究直接导致了增量收集算法的诞生。

多进程运行思路

最初,为了进行实时垃圾收集,可以设计一个多进程的运行环境,比如用一个进程执行垃圾收集工作,另一个进程执行程序代码。这样一来,垃圾收集工作看上去仿佛是在后台悄悄的干活,不会打断程序代码的运行。垃圾收集包括标记和清除2个工作阶段,如果垃圾收集器在第一阶段标记的记过很可嫩古北另一个进程中的内存操作代码修改了,以至于第二阶段的工作无法开展。

基本思想

如果一次性将所有的垃圾进行处理,需要造成系统长时间的停顿,那么就可以让垃圾收集线程和应用程序线程交替执行。每次,垃圾收集线程值收集一小片区域的内存,接着切换到应用程序线程,依次反复,直到垃圾收集完成。

存在问题

使用这种方法,由于在垃圾回收过程中,间断性的执行了应用程序代码,所以能减少系统的停顿时间,但是,因为线程切换和上下文转换的消耗,会使得垃圾回收的成本上升,造成系统的吞吐量下降。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

AI极简经济学

AI极简经济学

阿杰伊·阿格拉沃尔、乔舒亚·甘斯、阿维·戈德法布 / 闾佳 / 湖南科技出版社 / 2018-12-1 / 58.00

人工智能正在以不可阻挡的态势席卷全球。无论是iPhone的神经网络引擎、AlphaGo的围棋算法,还是无人驾驶、深度学习……毫无疑问,人工智能正在改写行业形态。如同此前个人电脑、互联网、大数据的风行一般,技术创新又一次极大地改变了我们的工作与生活。 那么,究竟应该如何看待人工智能?在《AI极简经济学》一书中,三位深耕人工智能和决策领域的经济学家给出了清晰的答案。他们以坚实的经济学理论剖析动态,把握......一起来看看 《AI极简经济学》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码