`
suqing
  • 浏览: 183198 次
  • 性别: 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源代码】详解JavaScript的垃圾回收机制.docx

    详解JavaScript的垃圾回收机制  目录 为什么需要垃圾回收(GC)什么是垃圾回收垃圾产生垃圾回收策略引用计数标记循环引用引发的问题解决方法引用计数算法的优缺点标记清除算法核心思想标记清除算法优缺点标记整理...

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

    一文带你了解JavaScript垃圾回收机制  目录 1. 概述 2. 内存管理 3. 垃圾回收 4. GC算法介绍 5. 引用计数算法 1. 引用计数优缺点 6. 标记清除算法 1. 标记清除算法优缺点 7. 标记整理算法 8. 执行时机 9. V8引擎 1...

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

    如果我们想要优化性能,首先我们必须得了解JavaScript中的垃圾回收机制,...在JavaScript中,具有自动垃圾回收机制,也就是说执行环境会自动负责管理代码执行过程中的内存使用情况,会自动清除一些没有用的变量,以此

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

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

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

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

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

    js闭包和垃圾回收机制示例详解  目录 前言 正文  1.闭包  1.1闭包是什么?  1.2闭包的特性 1.3理解闭包  1.4闭包的主要实现形式  1.5闭包的优缺点  1.6闭包的使用  2.垃圾回收机制 总结  前言  正文  ...

    JavaScript垃圾回收

    在 http://www.cnblogs.com/strick/p/4001585.html 有说明介绍

    JavaScript 垃圾回收机制分析

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

    谈谈JavaScript中的垃圾回收机制

    JavaScript 具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。  在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。...

    JavaScript中的垃圾回收与内存泄漏示例详解

    主要给大家介绍了关于JavaScript中垃圾回收与内存泄漏的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    全面了解JavaScirpt 的垃圾(garbage collection)回收机制

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

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

    对于JavaScript,程序中没有任何内存管理的可能——ECMAScript标准中没有暴露任何垃圾回收器的接口。网页应用既没有办法管理内存,也没办法给垃圾回收器进行提示。 严格来讲,使用垃圾回收器的语言在性能上并不一定...

    【JavaScript源代码】vue内存泄露详解.docx

    new了一个对象之后 ,它申请占用了一块堆内存,当把这个对象指针置为null时或者离开作用域导致被销毁,那么这块内 存没有人引用它了在JS里面就会被自动垃圾回收。但是如果这个对象指针没有被置为null,且代码面 ...

    javascript 内存回收机制理解

    因此了解GC,可以加深对javascript垃圾回收机制的理解。 2.用局部变量和全局变量解释GC GC在回收内存时,首先会判断该对象是否被其它对象引用.在确定没有其它对象引用便释放该对象内存区域.因此如何确定对象不再被引用...

    易语言调用GoogleV8引擎执行JS

    资源介绍:。V8 引擎简介。Google V8 引擎使用 C++ 代码编写,实现了 ECMAScript 规范的第五版,可以运行在所有的...我用C++封装了V8的基本功能(执行并编译JavaScript代码)供易语言调用(压缩后1.34 MB),感觉性能

    javascript垃圾收集机制的原理分析

     javascript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存。在编写javascript程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。下面将详细介绍...

    浅谈JavaScript 执行环境、作用域及垃圾回收

    根据JavaScript实现所在的宿主环境不同,表示执行环境的对象也不一样。在Web浏览器中,全局执行环境被认为是window对象。因此,所有的全局变量和函数都是作为window对象的属性和方法创建的。 变量对象:环境中定义的...

    【JavaScript源代码】详细聊聊浏览器是如何看闭包的.docx

     结语 前言 闭包,是javascript的一大理解难点,网上关于闭包的文章也很多,但是很少有能让人看了就彻底明白的文章。究其原因,我想是因为闭包涉及了一连串的知识点。只有把这一连串的知识点都理解透彻,实现一个...

    JavaScript高级程序设计(第四版)中文版.pdf文件 下载就能看,还有很多书的电子版,上传的没上传的,可以找我要

    4.3 垃圾回收 94 4.4 小结 101 第5章 基本引用类型 103 5.1 Date 103 5.2 RegExp 107 5.3 原始值包装类型 113 5.4 单例内置对象 128 5.5 小结 135 第6章 集合引用类型 136 6.1 Object 136 6.2 Array 138 ...

Global site tag (gtag.js) - Google Analytics