zoukankan      html  css  js  c++  java
  • v8 引擎的内存

    一、nodejs查看内容使用情况:

    process.memoryUsage()
    

      

     单位为 Btye 

    转化函数:

    var format = function(bytes) { 
                  return (bytes/1024/1024).toFixed(2)+'MB'; 
            };
    

      

    heapTotal 和 heapUsed 代表 V8 的内存使用情况。 

    external 代表 V8 管理的,绑定到 Javascript 的 C++ 对象的内存使用情况。 

    rss 是驻留集大小, 是给这个进程分配了多少物理内存(占总分配内存的一部分),这些物理内存中包含堆、代码段、以及栈。

    对象、字符串、闭包等存于堆内存。 变量存于栈内存,实际的 JavaScript 源代码存于代码段内存。

    二、浏览器的查看

    window.performance.memory
    

      

    三、内存的分布

    新生代内存,是采用循环回收,即: 

    从 from 取出 活着 的变量,放入 to , 清空 from 内存,然后 取出 to 里面 活着 的变量,存入 from , 清空 to 内存, 如此交替执行。

    老生代内存,当新生代内存占用超过 一定 百分比, 开始存入老生代。

    老生代内存是每次标记出活着的变量,删掉死去的, 然后整理内存,将碎片合并。

    四、内存的使用

    1、尽量不声明全局变量

    2、声明了全局变量,当不再使用的时候,置为 undefined 或者 null

    五、误区

    闭包会造成内存泄漏

    实际上,这是 javascript 权威指南,对 ie5 的一种说法,在 v8 里面是不存在的,包括目前的新浏览器,都不存在。

    具体的,可以自己用上面获取内存的办法,去比对。闭包对内存发现基本没有影响。

  • 相关阅读:
    构造函数+this关键字+super关键字
    封装
    数组+方法
    流程控制语句
    java运算符+引用数据类型
    java的基础安装
    mysql数据库连接
    mysql数据库约束
    mysql数据库
    练习010:按奇偶排序数组
  • 原文地址:https://www.cnblogs.com/muamaker/p/11695607.html
Copyright © 2011-2022 走看看