[Node.js] Identify memory leaks with nodejs-dashboard

In this lesson, I introduce a memory leak into our node.js application and show you how to identify it using the Formidable nodejs-dashboard. Once identified, we will add garbage collection stats to the error console allowing us to correlate garbage collection with the increased memory usage.

Install:

npm i -D gc-profiler nodejs-dashboard
let express = require(‘express‘);
let router = express.Router();
let faker = require(‘faker‘);
let words = [];
let profiler = require(‘gc-profiler‘);

profiler.on(‘gc‘, (info) => {
    console.error(info);
});

router.get(‘/‘, function(req, res, next) {
    let num = Math.floor(Math.random() * 1000) + 1;
    let searchterm = faker.lorem.words(num);
    let arr = searchterm.split(‘ ‘);
    arr.forEach(word => {
        words.push(word); // cause memory leak
    });
    console.log(`Generating ${num} words`);
    res.send(searchterm);
});

module.exports = router;

In the code, we can use ‘gc-profiler‘ to monitor the gb collection in order to see the memory leak in dashboard.

时间: 2024-12-28 16:23:16

[Node.js] Identify memory leaks with nodejs-dashboard的相关文章

Identify Memory Leaks in Visual CPP Applications(VLD内存泄漏检测工具)

原文地址:http://www.codeproject.com/Articles/1045847/Identify-Memory-Leaks-in-Visual-CPP-Applications 基于CPOL License Identify Memory Leaks in Visual CPP Applications Visual Leak Detector (VLD) is an easy to use memory leak detection system. The installat

[转载] Node.js 笔记(一) nodejs、npm、express安装

感谢原作者: http://blog.csdn.net/haidaochen/article/details/7257655 Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应该可以查看到当前安装的nodejs版本号 简单的例子写一段简短的代码,保存为helloworld.js,大致看下nodejs是怎么用的. 如下:该代码主要是创建一个http服

Node.js 笔记(一) nodejs、npm、express安装(转)

转载地址:http://blog.csdn.net/haidaochen/article/details/7257655 Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应该可以查看到当前安装的nodejs版本号 简单的例子写一段简短的代码,保存为helloworld.js,大致看下nodejs是怎么用的. 如下:该代码主要是创建一个http服务器

学习node.js 第1篇 介绍nodejs

Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方网站的定义文件内容如下: Node.js® is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an even

mac下命令行安装node.js及切换不同版本nodejs

摘自: http://www.cnblogs.com/ikuyka/p/5825762.html 前提是你电脑里已经装了node.js然后才能采用以下命令(以下代码最好不要同时运行) sudo n --lastest //最新版 sudo n --stable //稳定版 sudo n 4.x //4系列版本 sudo n 6.x //6系列版本 切换 sudo n 以笔者装的为例,输入以上代码后会出现 node/4.4.7 node/6.5.0 然后按上下键选择及回车就能选相应的版本了.

Node.js笔记(九)Nodejs与shell

众所周知,Nodejs是单进程异步运行的,但不光是单进程,Nodejs也提供了多进程方面的支持 其创始人应该还是比较重视这一块的,最有力的证据就是child_process是Nodejs核心模块之一 大多数情况下应该用不到这个模块,但child_process却能做很多有意思的事情 shell调用 最近用到的比较实用的功能,在做大数据处理的时候,需要根据客户在页面上的点击转化为spark集群的命令 spark是用scala写的,跟Nodejs半点关系都没有 考虑了一段时间后,决定用shell来解

Node.js笔记(十)Nodejs与DOM操作

Nodejs作为后端语言,直接进行DOM操作是违背分离原则的. 但如果是个人的小网站,稍微灵活一点也没有坏处不是. 这里介绍的是cheerio这个插件,是基于jquery实现并稍有精简,目的是为nodejs提供像jquery一样的dom操作 ps:本来jsdom也是一种选择,但可惜最新版本的jsdom不再支持nodejs 下面看一个例子: //这个方法从filelist.txt里面读出文件名,将其添加到index.html中类为listselect的select标签下 function getF

专门针对初学者的Node.js教程

转载原文:http://www.csdn.net/article/2013-08-28/2816731-absolute-beginners-guide-to-nodejs Node.js的教程并不缺乏,但有大部分教程针对已有Node.js基础的开发者.“我已下载了Node.js,可我如何开始呢?”以下教程是专门针对Node.js初学者,文中将通过实例分享,一步步教你如何开始Node.js之旅. 什么是Node.js? 很多初学者并没有真正地理解Node.js到底是什么.nodejs.org网站

Mac环境下安装node.js、npm、express

一:node.js安转 方法一:下载node.js for Mac 地址: http://nodejs.org/download/ 直接下载 pkg的,双击安装,一路点next,很容易就搞定了. 安装完会提醒注意 node和npm的路径是 /usr/local/bin. 方法二:用Homebrew安装 1.安装Homebrew Homebrew的安装非常简单,打开终端复制.粘贴以下命令,回车,搞定. ruby -e "$(curl -fsSL https://raw.githubusercont