怎么理解JS中的垃圾回收-创新互联

这篇文章主要讲解了“怎么理解JS中的垃圾回收”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解JS中的垃圾回收”吧!

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比嵩县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式嵩县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖嵩县地区。费用合理售后完善,10余年实体公司更值得信赖。

JS中的垃圾回收机制必要性,由于字符串、对象和数组没有固定大小,所有当他们的大小以知时,才能对他们进行动态的存储分配。JavaScript程度每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放这些内存以便他们能够被再用,否则,javascript的解释器将会消耗完系统中所有可用的内存,造成系统崩溃。

为什么需要系统JS中的垃圾回收

JS不像C/C++,他有自己的一套垃圾回收机制。javascript的解析器可以检测到何时程序不再使用一个对象了,当他确定了一个对象是无用的时候,他就知道不再需要这个对象,可以把它所占用的内存释放掉了。

例如:

vara="helloworld";

varb="world";

vara=b;

//这时,会释放掉“helloworld”,释放内存以便再引用

垃圾回收的方法

标记清除

js中最常用的垃圾收集方式是标记清楚。当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为“进入环境”。从逻辑上讲,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到他们。而当变量离开环境时,则将其标记为“离开环境”。

可以使用任何方式来标记变量。比如,可以通过翻转某个特殊的位来记录一个变量何时进入环境,或者使用一个“进入环境的”变量列表及一个“离开环境的”变量列表来跟踪哪个变量发生变化。

垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记(当然,可以使用任何标记方式)。然后,它会去掉环境中的变量以及被环境中的变量引用的变量标记。而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后,垃圾收集器完成内存除工作,销毁那些带标记的值并回收他们所占用的内存空间。

引用计数(不常见)

引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型值赋给该变量时,则这个值的引用次数就是1。如果同一个值又被赋给另一个变量,则该值的引用次数加1.相反,如果包含对这个值引用的变量又取的了另一个值,则这个值的引用次数减1.当这个值的引用次数变成0时,则说明没有办法再访问这个值了,因而就可以将其占用的内存空间收回来。这样,当垃圾收集器下次再运行时,它就会释放那些引用次数为零的值所占用的内存。

感谢各位的阅读,以上就是“怎么理解JS中的垃圾回收”的内容了,经过本文的学习后,相信大家对怎么理解JS中的垃圾回收这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联网站建设公司,,小编将为大家推送更多相关知识点的文章,欢迎关注!

当前题目:怎么理解JS中的垃圾回收-创新互联
本文地址:https://www.cdcxhl.com/article22/cosgcc.html

成都网站建设公司_创新互联,为您提供关键词优化网站策划全网营销推广企业建站微信小程序软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化