nodejs内存泄露排查
来源:互联网 发布:mysql insert出错 编辑:程序博客网 时间:2024/05/16 06:09
参考《深入浅出nodejs》
v8-profiler:由Danny Coates提供,可以用于对V8堆内存抓取快照和对CPU进行分析,3年没有维护
node-heapdump:允许对V8堆内存抓取快照,用于事后分析
node-mtrace:使用了GCC的mtrace工具来分析堆的使用
node-memwatch:来自Mozilla的Lloyd Hilaiel贡献的模块
1.node-heapdump
var leakArray=[];var leak=function (){ leakArray.push("leak:"+Match.random());}http.createServer(function (req,res) { leak(); res.writeHead(200,{'Content-Type':'text/plain'}); res.end('Hello World\n');}).listen(1337);console.log('开始监听');安装node-heapdump
npm install heapdump安装后再代码第一行添加代码引入
var heapdump=require('heapdump');通过服务进程发送SIGUSR2信号,让node-heapdump抓拍一份堆内存的快照。
$ kill -USR2 <pid>在文件目录下以heapdump-<sec>/<usec>.heapsnapshot的格式存放。的json文件,需要通过Chrome的开发者工具打开查看
2.node-memwatch
安装node-memwatch
var memwatch=require('memwatch');//如果经过连续5次垃圾回收后,内存仍然没有被释放,意味着有内存泄漏的产生,会触发一个leak事件memwatch.on('leak',function(info){ console.log('leak:'); console.log(info);});//每次进行全堆垃圾回收时,将会触发一次stats时间memwatch.on('stats',function(stats){ console.log('stats:'); console.log(stats);});var http=require('http');var leakArray=[];var leak=function (){ leakArray.push("leak:"+Match.random());}http.createServer(function (req,res) { leak(); res.writeHead(200,{'Content-Type':'text/plain'}); res.end('Hello World\n');}).listen(1337);console.log('开始监听');
0 0
- nodejs内存泄露排查
- 内存泄露的排查
- 内存泄露排查
- 内存泄露排查
- Android内存泄露排查
- pyclutter内存泄露排查记录
- 内存泄露排查实战手记
- Java内存泄露排查备忘
- 内存泄露之排查篇
- c++内存泄露排查思路
- 一次内存泄露问题的排查
- 一次内存泄露问题的排查
- 一次内存泄露问题的排查
- 一次内存泄露问题的排查
- [Android]内存泄露排查实战手记
- 一次内存泄露问题的排查
- [android]_[内存泄露分析和排查]
- 内存泄露问题排查技巧(无米之炊)
- XPath
- Android 多分辨率适配
- CSS简介
- Volatile关键字
- 数据不一致的原因,数据库三范式,事务特性,事务的四个隔离级别,数据库锁
- nodejs内存泄露排查
- 求一个师傅
- 去除Dialog的黑色背景
- loadrunner的参数化设置
- 迭代删除
- WCF 快速入门教程
- ORA-12560: TNS: 协议适配器错误
- 黑马程序员——Java基础---多线程
- <学习笔记> 安装Ionic