码迷,mamicode.com
首页 > 其他好文 > 详细

v8 引擎的内存

时间:2019-10-17 23:58:18      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:orm   func   标记   png   cti   for   分布   开始   span   

一、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 里面是不存在的,包括目前的新浏览器,都不存在。

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

 

v8 引擎的内存

标签:orm   func   标记   png   cti   for   分布   开始   span   

原文地址:https://www.cnblogs.com/muamaker/p/11695607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!