首页 > 其他 > 详细

v8 引擎的内存

时间:2019-10-18 00:21:22      阅读:72      评论:0      收藏:0      [点我收藏+]

一、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 引擎的内存

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!