首页 > 其他分享 >js-垃圾回收

js-垃圾回收

时间:2022-12-08 21:47:17浏览次数:36  
标签:垃圾 变量 回收 js 引用 内存

js 是垃圾回收的语言,也就是执行环境负责在代码执行时管理内存。
1. 标记清理
垃圾回收程序时,会标记内存中存储的所有变量,然后会将所有在上下文中的变量,以及被在上下文中的变量引用的变量标记去掉。在此之后再被及加上标记的变量就是待删除的了。原因是在上下文中的变量都访问不到他们了。随后垃圾回收程序做一此内存清理。销毁带标记的所有值并回收他们的内存。
2. 思路是对每个值都记录它被引用的次数。如果被引用一次,那么引用数就加1。如果保存对该值引用的变量被其他值覆盖了,那么引用数减1.当一个值的引用数为0时,那么说明没有访问到这个变量,就可以回收了。(问题是循环引用会导致变量不会被回收,目前解决办法是代码将值置为0)。
IE7之后,js引擎的垃圾回收程序被调优为动态改变分配变量,字面量或者数组槽位等会触发垃圾回收的阈值。如果回收的内存不到分配的15%,那么阈值将翻倍。如果回收的内存达到了85%,那么阈值将重置为默认值。

通常无需关系内存管理。
优化:const和let声明提升性能。变量不使用时将其置为null。

标签:垃圾,变量,回收,js,引用,内存
From: https://www.cnblogs.com/tdcqcrtd/p/16967417.html

相关文章

  • JS方法——Date(日期)
    Date:默认情况下,JavaScript将使用浏览器的时区并将日期显示为全文本字符串。用指定日期和时间创建新的日期对象,7个数字分别指定年、月、日、小时、分钟、秒和毫秒(按此......
  • JS数据结构与算法
      视频https://www.bilibili.com/video/BV1x7411L7Q7/?p=1&vd_source=e9b8cfee2a87176fd8f46368175ac878 笔记https://www.cnblogs.com/AhuntSun-blog/p/12636718......
  • JS基础1
     •JavaScript书写位置   工作中常用外部写法,和css样式基本相同•JavaScript的注释   •JavaScript的结束符    •输入和输出语法......
  • json web token不错的介绍文章收藏
    其中介绍不错的系列文章:​​​http://blog.leapoahead.com/2015/09/06/understanding-jwt/​​​http://blog.leapoahead.com/2015/09/07/user-auth......
  • vue常用依赖(一)vue-json-viewer展示JSON格式数据
    项目需求:将后台返回的字符串展示为Json格式且美化1.下载//Vue2npminstallvue-json-viewer@2--save//Vue3npminstallvue-json-viewer@3--save2.引入并全局注......
  • 关于如何获取.jsp文件中已经展示的信息
    在进行信息删除操作(假设通过ID进行删除)的时候,如果在真正进行删除之前展示即将被删除的信息进行最终删除确认,那么跳转到相应的.jsp文件之后就会丢失ID信息(即,系统无法再获取......
  • 解一个webpack打包后加密的JS代码
    源码过长,只贴部分加密的源代码如下0x1fc9:function(_0x2715a2,_0x5a118b,_0x344094){const_0x23ae3e=_0x344094(`611c`);class_0x2e9b72{......
  • JSON学习
     作者:MiloYip1、 JSON是什么JSON(JavaScriptObjectNotation)是一个用于数据交换的文本格式,现时的标准为ECMA-404。虽然JSON源至于JavaScript语言,但它只是一种数据......
  • Windows10 gitbook本地搭建(nodejs v10.23.0)
    1.下载Nodejs并安装,默认路径即可。(用最新的版本没成功,按照一篇博客里提示的版本nodejsv10.23.0,成功创建gitbook)https://nodejs.org/download/release/v10.23.0/node-v1......
  • JS方法——Number&parseInt(数值转换)
    Number(转换为数值)无法转换的为NaN类型x=true;Number(x);//返回1x=false;Number(x);//返回0x=newDate();Number(x);//......