Skip to content

Instrumentation framework for Node.js compliant to ECMAScript 2020 based on GraalVM.

License

Notifications You must be signed in to change notification settings

MohGanji/nodeprof.js

 
 

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

Use mx to download a JDK for building GraalVM and set the JAVA_HOME environment variable accordingly:

mx fetch-jdk --java-distribution labsjdk-ce-11
export JAVA_HOME=PATH_TO_THE_DOWNLOADED_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

Instrumentation framework for Node.js compliant to ECMAScript 2020 based on GraalVM.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 73.3%
  • JavaScript 23.6%
  • Python 2.9%
  • Other 0.2%