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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述