程序猿刚子的博客

大龄程序猿,分享互联网开发相关知识!前端、后端,架构等内容,欢迎关注公众号 chengxuyuangangzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  96 随笔 :: 14 文章 :: 110 评论 :: 27万 阅读

Javascript拥有自己的垃圾收集机制,因此我们省去了手工内存回收的问题。

这里简单的记录下关于这部分的内容

 

javascript有两种垃圾收集策略 

 

一、            标记清除

该方法是在执行垃圾收集时先将内存中所有变量置位,然后去除执行环境及执行环境引用的变量,将其余变量视为无用变量予以收回。 

小注:

目前大部分浏览器采用的方法,另外在程序中将不再用的变量置为null可以使垃圾回收器在下一次执行中立刻释放相应内存。

 

二、            引用计数

就是对变量的引用次数进行跟踪记录,当引用次数为0时视变量为不再用,予以内存收回。

小注:

由于循环引用问题会导致内存得不到释放,如果在循环规模比较大的情况下会导致浪费大量内存。例如:

Function test()

{

       Var o1 = new Object();     

       Var o2 = new Object();

       O1.obj = o2;

       O2.obj = o1;

}

如程序中o1,o2的引用次数都为2 函数结束时也不会减为0,所以内存得不到释放。

解决办法:

可以手工拆除循环引用。

O1.obj = o2.obj = null;

posted on   程序猿刚子  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示