v8-cpu-analysis

    1.3.7 • Public • Published

    中文版

    npm version Package Quality license

    v8-analytics/v8-cpu-analysis

    Analysis the cpu & heap-memory log file which created by v8-profiler & heapdump,it can:

    • show you functions which are optimized failed by v8 engine
    • show you functions which exectime greater than your expected
    • show you suspicious memory leak point

    Why Two Names?

    v8-analytics is completely equivalent to v8-cpu-analysis, there is no difference between them.

    Beacuse I want to introduce v8 engine's heap-memory analytics, so I think cpu in package name is not suitable. More, to be compatible with before, I chose them published comletely equivalent.

    Installation

    For Global

    $ npm install v8-analytics -g

    or

    $ npm install v8-cpu-analysis -g

    For Embedded JS code

    $ npm install v8-analytics

    or

    $ npm install v8-cpu-analysis

    Test

    if you install -g, try:

    //test bailout
    $ va test bailout
    $ va test bailout --only
    //test timeout
    $ va test timeout
    $ va test timeout 200
    $ va test timeout 200 --only
    $ va test leak

    va test bailout --only can list you all functions which are deoptimized, and it's deoptimization reason.

    va test timeout 200 --only can list you all function which exectime > 200ms.

    va test leak cans list you suspicious leak point in your project.

    Quick Start

    You can use this at the command line or embedded in your js code

    I. Command Line

    Find Function Bailout Reason

    The xxx.cpu.json file created by v8-profiler:

    $ va bailout xxx.cpu.json

    This will list all Function, and turn the deoptimized function to red. You can also use like that:

    $ va bailout xxx.cpu.json --only

    This will only list the deoptimized functions.

    Find Funtion Exectime Greater Than Expected

    $ va timeout xxx.cpu.json

    This will list all Function, and their exectime

    $ va timeout xxx.cpu.json 200

    This will list all Function ,and turn the functions which exectime > 200ms to red.

    $ va timeout xxx.cpu.json 200 --only

    This will only list the functions which exectime > 200ms.

    Find suspicious memory leak point

    $ va leak xxx.mem.json
    

    This will show you suspicous leak ponit in your node.js project.

    II. Embedded JS Code

    'use strict';
    const fs = require('fs');
    const v8Analytics = require('v8-analytics');
    //or you can use following, they're equival
    //const v8Analytics = require('v8-cpu-analysis');
     
    //list all js function and it's execTime
    const json = JSON.parse(fs.readFileSync('./test.cpu.json'));
    const str = v8Analytics(json);
    console.log(str);
     
    //list you heap memory info
    const json = JSON.parse(fs.readFileSync('./test.mem.json'));
    const {leakPoint, heapMap, statistics} = analysisLib.memAnalytics(allData)

    Install

    npm i v8-cpu-analysis

    DownloadsWeekly Downloads

    97

    Version

    1.3.7

    License

    ISC

    Last publish

    Collaborators

    • hyj1991