`
suqing
  • 浏览: 186698 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

如何测试Javascript代码的垃圾回收

 
阅读更多

一个小技巧。首先打开最新版的chrome浏览器。

 

chrome能测试Javascript的内存堆(分配给js对象的内存)的状况,需要输入一段代码启动它: 

chrome --enable-memory-info

  

接着,创建一个HTML文件,如下:

<script>
var i = 0;
setInterval(function(){
    var before = window.performance.memory.usedJSHeapSize;
    // Start
    i = i + 10;
    // End
    var diff = window.performance.memory.usedJSHeapSize - before;
    console.log(diff);
}, 100);
</script>

  

我现在的chrome版本是 31.0.1650.63。运行这个函数需要花9bytes,所以输出值减去了9。你可以根据你chrome的版本和设置改变这个数值。

 

如果运行这段脚本,注意到输入的数值为

2424
728
0
0
0
...
 

 

第一个数字是因为V8引擎还在准备,过一会儿,js引擎将代码优化完,就能看到,结果不停的循环显示0。

 

接下来,在循环中放一段代码,看看会发生什么。如果在循环里初始化一个对象,如下: 

setInterval(function(){
    var before = window.performance.memory.usedJSHeapSize;
 
    var obj = new Object();
 
    var diff = window.performance.memory.usedJSHeapSize - before;
    console.log(diff);
}, 100);

  

输出变为

3360
752
53
24
24
24
...

 

 

可以总结出,分配24bytes给一个普通的Javascript对象。

可以使用此段代码来衡量你的代码循环会带来多少GC负荷。

 

 

 

 

分享到:
评论

相关推荐

    JavaScript垃圾回收

    4. **增量垃圾回收(Incremental GC)**:为了减少垃圾回收过程中程序的暂停时间,JavaScript引擎会在代码执行间歇进行小规模的垃圾回收,而不是一次性完成整个过程。这样可以降低用户感知的延迟。 5. **并发垃圾...

    【JavaScript源代码】详解JavaScript的垃圾回收机制.docx

    ### JavaScript的垃圾回收机制详解 #### 一、为什么需要垃圾回收(GC) 在计算机程序运行过程中,随着时间的推移,程序会不断创建新的对象并占用内存。然而,并非所有创建的对象都会持续被使用,一旦某些对象不再...

    【JavaScript源代码】一文带你了解JavaScript垃圾回收机制.docx

    ### JavaScript垃圾回收机制详解 #### 一、概述 在现代软件开发中,特别是前端领域,JavaScript 已成为不可或缺的一部分。随着应用复杂度的增加,如何有效地管理内存成为了开发者必须面对的问题之一。JavaScript ...

    垃圾回收分类查询平台微信小程序端

    【垃圾回收分类查询平台微信小程序端】是一款基于JavaScript开发的微信小程序应用,旨在提供便捷的垃圾分类查询服务。这款小程序能够帮助用户快速识别不同类型的垃圾,提高环保意识,推动垃圾分类的普及。通过微信小...

    JavaScript的垃圾回收机制与内存管理

    了解JavaScript的垃圾回收机制和内存管理对于编写高效且无内存泄漏的代码至关重要。理解这些原理可以帮助开发者编写出更优化的代码,避免因不必要的内存占用导致的性能下降。通过合理地分配和释放内存,可以提高...

    【JavaScript源代码】js闭包和垃圾回收机制示例详解.docx

    ### JavaScript闭包与垃圾回收机制详解 #### 一、闭包 ##### 1.1 闭包是什么? 闭包(Closure)是JavaScript中一个非常重要的概念,它涉及到函数及其相关的词法作用域。简单来说,闭包就是能够访问其自身作用域...

    牛客-数据存储与垃圾回收

    牛客-数据存储与垃圾回收 本文将详细介绍JavaScript中的数据存储与垃圾回收机制,从数据类型、内存空间、垃圾回收机制等方面进行了深入探讨...只有深入理解这些机制,我们才能更好地编写高效、可靠的JavaScript代码。

    跟我学习javascript的垃圾回收机制与内存管理

    Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。 原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。 JavaScript...

    javascript常见代码合集

    了解V8引擎的内部工作原理,如垃圾回收、作用域优化等,有助于写出高性能的JavaScript代码。 15. **最新特性**: 持续关注和学习ES新版本带来的特性,如模板字符串、解构赋值、默认参数、Rest/Spread语法等,保持...

    谈谈JavaScript中的垃圾回收机制

    总之,理解JavaScript的垃圾回收机制对于编写高效且无内存泄漏的代码至关重要。开发者应当关注内存管理,尤其是在处理大量数据或者复杂对象结构时,避免循环引用和不必要的内存占用,以提升程序性能。同时,适时使用...

    垃圾回收器的相关知识点总结

    开发者需要了解其语言的垃圾回收机制,以便编写出更高效、更易于管理内存的代码。在JavaScript中,虽然程序员无法直接控制垃圾回收,但是通过合理地组织数据结构、减少全局变量和长生命周期的对象,以及避免不必要的...

    cpp-从blink里剥离的垃圾回收组件能让c拥有java一样的自动垃圾回收机制

    标题中的“cpp-从blink里剥离的垃圾回收组件能让c拥有java一样的自动垃圾回收机制”表明,这个项目或代码库是关于将源自Web浏览器引擎Blink的垃圾回收(Garbage Collection, GC)技术应用于C++,以实现类似Java的...

    JavaScript 垃圾回收机制分析

    和C#、Java一样JavaScript有自动垃圾回收机制,也就是说执行环境会负责管理代码执行过程中使用的内存,在开发过程中就无需考虑内存分配及无用内存的回收问题了。JavaScript垃圾回收的机制很简单:找出不再使用的变量...

    Javascript解释器在ECMAScript中运行Javascript代码

    在执行过程中,解释器会管理变量作用域、内存分配、垃圾回收等。 在ECMAScript环境中,JavaScript解释器必须遵循ECMAScript规范。例如,对于变量声明,它需要理解`var`、`let`和`const`的区别;对于函数,它要支持...

    13-垃圾回收:垃圾数据是如何自动回收的?_For_vip_user_0011

    在IT领域,特别是编程语言的设计和使用中,内存管理是一个至关重要的环节。垃圾回收机制是自动内存管理的一种方法...在JavaScript中,了解如何分配和回收数据,以及垃圾回收的工作方式,对于编写高性能的代码至关重要。

    【JavaScript源代码】一篇文章弄懂javascript内存泄漏.docx

    在JavaScript中,内存管理并不像C语言那样需要开发者手动分配和释放,而是由JavaScript引擎(如Chrome的V8引擎)负责垃圾回收(Garbage Collection,GC)。 内存泄漏通常发生在程序不再需要某块内存但未将其释放时...

    【JavaScript源代码】JavaScript CollectGarbage函数案例详解.docx

    JavaScript中的内存管理是一个重要的主题,尤其是在处理大量数据或者长时间运行的脚本时。...在开发过程中,应该尽量编写无副作用的代码,减少不必要的内存消耗,并依赖于现代浏览器的内置垃圾回收机制来处理内存释放。

    最新版废品回收小程序前端后端源代码亲测可用

    "最新版废品回收小程序前端后端源代码亲测可用" 这个标题揭示了几个关键信息。首先,这是一个关于废品回收的小程序项目,意味着它涉及到了环保与资源再利用的领域。其次,"最新版"表示这是该软件的更新迭代版本,...

    JAVASCRIPT实战手册代码部分

    11. **性能优化**:包括垃圾回收机制、内存管理、减少DOM操作次数、避免阻塞主线程等策略。 12. **JavaScript库和框架**:如jQuery、React、Vue、Angular等,它们简化了开发流程并提供了丰富的功能。 通过...

Global site tag (gtag.js) - Google Analytics