当前位置: 首页 > 工具软件 > memwatch > 使用案例 >

win10下nodejs内存泄漏查找工具node-heapdump和node-memwatch的安装

王棋
2023-12-01

最近在看《深入浅出Node.js》,看到了第5章提到的node-heapdump和node-memwatch内在泄漏查找工具,我就尝试在win10下安装和使用一下,觉得有必要总结一下。

node-heapdump的安装

这个开源项目的github地址戳这儿。按照项目提供的步骤安装还是挺简单的:

npm install heapdump

它的使用也很简单,如下:

var heapdump = require('heapdump');
heapdump.writeSnapshot('/var/local/' + Date.now() + '.heapsnapshot');
//或者
heapdump.writeSnapshot(function(err, filename) {
  console.log('dump written to', filename);
});

后续的操作按照后面的介绍就可以了。

node-memwtach的安装

这个项目的github地址原本在这儿,但是很不幸的是如果你在win10下用命令安装会出错:

npm install memwatch

这个项目很久没有人维护了,看样子被遗弃了,还好找到了另外一个替代的,github地址在这儿。但是不幸的是如果你使用如下命令安装仍然会出错:

npm install @airbnb/node-memwatch

怎么办,我找到了一个办法,原来有人提了一个PR,来修改win10下编译出错的问题,见链接。我们参考这个,把源码下载下来,然后修改memwatch.cc文件的第19行注释掉:

//#include <sys/time.h>

第179~182行注释掉,然后接下来添加一行:

        // timeval tv;
        // gettimeofday(&tv, NULL);

        // baton->gc_ts = (tv.tv_sec * 1000000) + tv.tv_usec;
        baton->gc_ts = uv_hrtime() / 1000;

接下来在项目的目录下,也就是package.json同级目录下运行命令:

npm install

接着就可以编译成功了。接下来,你可以把整个项目文件夹node-memwatch拷贝到你的项目node_modules目录下,然后进入node-memwatch目录下,删除.git文件夹,这个东西太大,没有用。

然后就可以直接使用了,引用时使用如下方式:

var memwatch = require('node-memwatch');

ok,接下来你就可以使用它大展身手了。

 类似资料: