Title
Efficient Dynamic Analysis For Node.Js
Abstract
Due to its popularity, there is an urgent need for dynamic program-analysis tools for Node. js, helping developers find bugs, performance bottlenecks, and bad coding practices. Frameworks based on code-level instrumentation enable dynamic analyses close to program semantics and are more flexible than Node. js built-in profiling tools. However, existing code-level instrumentation frameworks for JavaScript suffer from enormous overheads and difficulties in instrumenting the built-in module library of Node. js. In this paper, we introduce a new dynamic analysis framework for JavaScript and Node. js called NodeProf. While offering similar flexibility as code-level instrumentation frameworks, NodeProf significantly improves analysis performance while ensuring comprehensive code coverage. NodeProf supports runtime (de) activation of analyses and incurs zero overhead when no analysis is active. NodeProf is based on dynamic instrumentation of the JavaScript runtime and leverages automatic partial evaluation to generate efficient machine code. In addition, NodeProf makes use of the language interoperability provided by the runtime and thus allows dynamic analyses to be written in Java and JavaScript with compatibility to Jalangi, a state-of-the-art code-level JavaScript instrumentation framework. Our experiments show that the peak performance of running the same dynamic analyses using NodeProf can be up to three orders of magnitude faster than Jalangi.
Year
DOI
Venue
2018
10.1145/3178372.3179527
CC'18: PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION
Keywords
Field
DocType
JavaScript, dynamic analysis, instrumentation
Code coverage,Programming language,Profiling (computer programming),Partial evaluation,Computer science,Machine code,Java,Language interoperability,Semantics,Embedded system,JavaScript
Conference
Citations 
PageRank 
References 
0
0.34
15
Authors
4
Name
Order
Citations
PageRank
Haiyang Sun1188.18
Daniele Bonetta28112.87
Christian Humer300.34
Walter Binder4107792.58