[Node.js] Use nodejs-dashboard event loop delay with hrtime()

In this lesson, you will learn how to use the Formidable nodejs-dashboard event loop delay to identify expensive operations in your code. An example application with excessive synchronous file system write operations is used as well as the provided jmeter configuration to simulate load.

 

'use strict';

let express = require('express');
let router = express.Router();
let faker = require('faker');
let fs = require('fs');

let clock = (start) => {
    if(!start) return process.hrtime();
    let end = process.hrtime(start);
    return Math.round((end[0]*1000) + (end[1]/1000000));
}

router.get('/', function(req, res, next) {
    let start = clock();
    let num = Math.floor(Math.random() * 1000) + 1;
    let searchterm = faker.lorem.words(num);
    let arr = searchterm.split(' ');
    let fsStart = clock();
    arr.forEach(word => {
        fs.writeFileSync('lorem.txt', word);
    });
    let fsDuration = clock(fsStart);
    console.log(`Generating ${num} words`);
    res.send(searchterm);
    let duration = clock(start);
    console.error(`router.get / took ${duration}, fs write took ${fsDuration}`);
});

module.exports = router;

 

posted @ 2016-11-29 20:32  Zhentiw  阅读(397)  评论(0编辑  收藏  举报