课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
垃圾回收机制是程序员在学习java编程开发语言需要重点掌握的一个编程知识,而今天我们就一起来了解一下,垃圾回收原理的基础知识。
1、垃圾回收基本原理
任何垃圾回收机制都会周期性的执行一些基本步骤:
找到哪些是垃圾(凉凉的对象,deadobjects),哪些不是垃圾(活动对象,liveobjects)
回收再利用那些垃圾占用的内存
压缩/整理垃圾留下的碎片(可选)
这些任务可以按顺序进行,也可以任意交错进行。
2、并行
并行就是指主线程和辅助线程在同一个时间做大致等量的工作。这虽然还是会阻塞主线程,但是阻塞的时间会减少,总阻塞时间会变成原来的n(线程的总数)分之一。
这是三种技术中简单的一种。由于这时候js是停止执行的,所以只需要解决各个辅助线程在访问同一个对象时的数据同步问题即可。
3、增量
增量是指主线程间歇性的执行一小部分工作。把整个GC操作切成一小块一小块的,每次执行GC的一小部分工作。这种方式要难很多,因为JavaScript执行是夹杂在增量中的,所以很有可能在因为堆状态的变化,导致之前的一个增量工作无效。
从下图可以看出,这并不会减少GC任务的总执行时间,甚至稍微会增加一点。但是这是一个减少JavaScript阻塞时间的好方法。通过允许JavaScript间歇性的运行可以保证程序在GC操作中依然可以响应用户的输入和动画的执行。
4、并发
并发指的是完全不阻塞JavaScript执行,GC的步骤全部通过辅助线程在后台执行。
这是三种技术中难的一个,在任何时间JavaScript堆的任何东西都有可能改变,导致之前做的清理工作无效。主线程和辅助线程还有可能同时读取和修改相同的对象,会存在read/writeraces的问题
并发的好处是除去一点点和辅助线程同步的开销,可以完全释放主线程去执行
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。