首页 > 编程语言 >[Javascript] garbage collection

[Javascript] garbage collection

时间:2024-07-01 19:52:56浏览次数:22  
标签:const name garbage globalString Javascript collection innerString Test innerTest

Any time when you have non-primitive type, it's going to be removed from memory anytime if it is no longer needed.

class Test {
  constructor(name) {
    this.name = name
  }
}

const gloablTest = new Test("globalTest")
const globalString = "globalString"

{
  const innerTest = new Test("innerTest")
  const innerString = "innerString"
  
  console.log(innerTest.name)
  console.log(innerString)
}

 

After you do Heap snapshot, you will still see Test, globalString and innerString due to Testclass has references and Stringis primitive string, it's stay in memory.

 

When you do Heap snapshot, you might see lots of objects in the result, some are from the javascript engine itself,  if you only want to see the result which related to your code, you can do 

1. Add debuggeron top of the file, then capture snapshot once

debugger; 

class Test {
  constructor(name) {
    this.name = name
  }
}

const gloablTest = new Test("globalTest")
const globalString = "globalString"

{
  const innerTest = new Test("innerTest")
  const innerString = "innerString"
  
  console.log(innerTest.name)
  console.log(innerString)
}

 

2. Resume the code on the debuggerpoint, and capture snapshot second times.

3. Then compare the the difference of two snapshot

 

video: https://www.youtube.com/watch?v=WqNqeMjd28I&list=WL&index=65&t=14s

标签:const,name,garbage,globalString,Javascript,collection,innerString,Test,innerTest
From: https://www.cnblogs.com/Answer1215/p/18278698

相关文章

  • JavaScript 编程语言【 数据类型】过滤|排序|映射|迭代
    文章目录将border-left-width转换成borderLeftWidth过滤范围原位(inplace)过滤范围降序排列复制和排序数组创建一个可扩展的calculator映射到names映射到对象按年龄对用户排序随机排列数组获取平均年龄数组去重从数组创建键(值)对象Iterableobject(可迭代对象)Symbol.......
  • RAG与LLM原理及实践(6)--- Chroma collection及存储逻辑分析
     背景在chromavectordb的世界中,除了对query的理解,另外就是需要深入理解chroma的运行模式,chroma运行时,提供了 local模式,server-client模式,这些在应用中固然重要,但从实现原理上说,其实就是通过http服务,在固定端口如11344上请求数据。但是在这之前,需要深入了解并理解coll......
  • GEE问题:Landsat Collection 2不同传感器之间是否需要进行协调校正?
    LandsatTeam团队和GEE团队对于大多数应用而言,在使用采集2地表反射率产品时,无需进行任何传感器间协调校正(转述Landsat科学团队MikeWulder的信息)(个人经验)。使用波段比指数时尤其如此。您提到的Roy等人的系数是为采集前数据开发的。大地遥感卫星档案现已进入第2个数......
  • [JavaScript]“复杂”的 this
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18277656出自【进步*于辰的博客】参考笔记二,P6.1;笔记三,P72、P73.1。先言我很早就知晓JS的这个知识点——this的重要性,并特意系统学习、理解并有所笔记,但限于平日用得少,对......
  • 【JavaScript脚本宇宙】打造完美用户体验:必备JS图形库指南
    探索顶尖JavaScript图形库:从jsPlumb到mxGraph前言在现代的Web开发中,交互式图形和数据可视化库成为了不可或缺的工具。这些库不仅提供了丰富的功能,还大大简化了开发人员的工作流程。本文将介绍和比较六个流行的JavaScript图形和数据可视化库:jsPlumb、GoJS、draw2d、Cytosca......
  • 【JavaScript脚本宇宙】加速您的网站:图像优化工具和库的终极指南
    别让大图拖垮你的应用:如何正确优化图像前言在数字时代,图像是我们日常生活中不可或缺的一部分。然而,随着图像数量的增加和分辨率的提高,它们也占据了越来越多的存储空间和带宽。为了解决这个问题,开发人员可以使用各种图像优化工具和技术来减小图像文件的大小,同时保持其质量......
  • 【JavaScript脚本宇宙】精通前端开发:六大热门CSS框架详解
    前端开发的利器:深入了解六大CSS框架前言在现代Web开发中,选择适合的前端框架和工具包是构建高效、响应式和美观的网站或应用程序的关键。本文将详细介绍六个广受欢迎的CSS框架:Bootstrap、Bulma、TailwindCSS、Foundation、Materialize和SemanticUI。每个框架都有其独特的......
  • Arturia - FX Collection 5 v5.0.0 VST, VST3, AAX x64 {R2R} [13.06.2024]
    Arturia-FXCollection5v5.0.0forWindowsmac【【新品发布+小广告】ArturiaFXCollection5超强音乐制作插件套装34款产品逐一点评】https://www.bilibili.com/video/B...4d4e7f5c56f93e901cd    包括BusEXCITER-104BusFORCEBusPEAKChorusDIMENSION-DCh......
  • JavaScript发送带附件的电子邮件
    consttransporter=nodemailer.createTransport({host:"smtp.qq.com",//SMTP服务器地址port:465,//SMTP端口,对于SSL使用465secure:true,//对端口465使用“true”,对所有其他端口使用“false”auth:{user:"发件人邮箱",//发件人邮箱pass:"......
  • Javascript高级程序设计(第四版)--学习记录之基本引用类型
    DateDate类型将日期保存为自协调世界时间1970年1月1日午夜至今所经过的毫秒数。创建日期对象letnow=newDate()Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。lettime=newDate(Date.parse("May24,2024"));Date.now()......