All Projects → Haiyang-Sun → nodeprof.js

Haiyang-Sun / nodeprof.js

Licence: Apache-2.0 license
Instrumentation framework for Node.js compliant to ECMAScript 2020 based on GraalVM.

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to nodeprof.js

thundra-agent-python
Thundra Lambda Python Agent
Stars: ✭ 36 (-18.18%)
Mutual labels:  instrumentation, profiling
Likwid
Performance monitoring and benchmarking suite
Stars: ✭ 957 (+2075%)
Mutual labels:  instrumentation, profiling
probes-api
Software Activity Metering - Probes Open API
Stars: ✭ 31 (-29.55%)
Mutual labels:  instrumentation, profiling
Scalopus
A tracing framework for C++ and Python.
Stars: ✭ 41 (-6.82%)
Mutual labels:  instrumentation, profiling
thundra-agent-nodejs
Thundra Lambda Node.js Agent
Stars: ✭ 31 (-29.55%)
Mutual labels:  instrumentation, profiling
Dynamorio
Dynamic Instrumentation Tool Platform
Stars: ✭ 1,828 (+4054.55%)
Mutual labels:  instrumentation, profiling
Timber Elixir
🌲 Great Elixir logging made easy
Stars: ✭ 226 (+413.64%)
Mutual labels:  instrumentation
sbt-instrumentation
Configurable instrumentation of LLVM bitcode
Stars: ✭ 31 (-29.55%)
Mutual labels:  instrumentation
Mambo
A low-overhead dynamic binary instrumentation and modification tool for ARM (now with both AArch32 and AArch64 support)
Stars: ✭ 199 (+352.27%)
Mutual labels:  instrumentation
Client python
Prometheus instrumentation library for Python applications
Stars: ✭ 2,500 (+5581.82%)
Mutual labels:  instrumentation
flamescope
Export flame data to speedscope's format
Stars: ✭ 26 (-40.91%)
Mutual labels:  profiling
perf-monitor
Kernel profiler based on perf_event and ebpf
Stars: ✭ 28 (-36.36%)
Mutual labels:  profiling
doc
QuickPerf documentation: https://github.com/quick-perf/doc/wiki/QuickPerf
Stars: ✭ 22 (-50%)
Mutual labels:  profiling
Statix
Fast and reliable Elixir client for StatsD-compatible servers
Stars: ✭ 228 (+418.18%)
Mutual labels:  instrumentation
MIDI-VAE
No description or website provided.
Stars: ✭ 56 (+27.27%)
Mutual labels:  instrumentation
Symbiotic
Symbiotic is a tool for finding bugs in computer programs based on instrumentation, program slicing and KLEE
Stars: ✭ 212 (+381.82%)
Mutual labels:  instrumentation
memcheck-cover
An HTML generator for Valgrind's Memcheck tool
Stars: ✭ 30 (-31.82%)
Mutual labels:  profiling
Zipkin Php
Zipkin instrumentation for PHP
Stars: ✭ 190 (+331.82%)
Mutual labels:  instrumentation
Marathon
Cross-platform test runner written for Android and iOS projects
Stars: ✭ 250 (+468.18%)
Mutual labels:  instrumentation
fastapi-debug-toolbar
A debug toolbar for FastAPI.
Stars: ✭ 90 (+104.55%)
Mutual labels:  profiling

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].