Skip to content

An efficient instrumentation and profiling framework for Graal.js.

License

Notifications You must be signed in to change notification settings

szeged/nodeprof.js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

An efficient instrumentation and profiling framework for Graal.js.

Getting Started

Get the mx build tool:

git clone https://github.com/graalvm/mx.git

Download and set the JAVA_HOME to the given JDK needed for building:

wget https://github.com/graalvm/openjdk8-jvmci-builder/releases/download/jvmci-0.46/openjdk-8u172-jvmci-0.46-linux-amd64.tar.gz
tar xvf openjdk-8u172-jvmci-0.46-linux-amd64.tar.gz
export JAVA_HOME=PATH_TO_THIS_JDK

Get dependent projects and build:

mkdir workspace-nodeprof
cd workspace-nodeprof
git clone https://github.com/Haiyang-Sun/nodeprof.js.git
cd nodeprof.js
mx sforceimports
mx build

Run tests:

mx test-all

Detailed explanation can be found in the Tutorial;

Goals

The goals of NodeProf are:

  • Use AST-level instrumentation which can benefit from the partial evaluation of the Graal compiler and have a much lower overhead compared to source-code instrumentation framework such as Jalangi
  • Compatible to analysis written in Jalangi detail.
  • Comprehensive coverage for NPM modules and Node.js libraries.
  • Compliant to the latest ECMAScript specification (thanks to Graal.js)

Author

  • Haiyang Sun

Publication

  • Efficient dynamic analysis for Node.js link

Licence

NodeProf is available under the following license:

Acknowledgement

Thanks to Daniele Bonetta, Alexander Jordan, and Christian Humer from Oracle Labs for the help during the implementation.

About

An efficient instrumentation and profiling framework for Graal.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 80.3%
  • JavaScript 16.5%
  • Python 3.2%