Studio comparativo di instrumentation tool per JavaScript per la verifica runtime di programmi Node.js
Mostra/ Apri
Autore
Iqbal , Muhammad Ahsan <1999>
Data
2025-12-18Disponibile dal
2025-12-25Abstract
Node.js è ampiamente utilizzato per costruire applicazioni server-side scalabili, ma verificare e monitorare il loro comportamento a runtime rimane una sfida. Gli sviluppatori necessitano di strumenti efficienti per tracciare i flussi di esecuzione, monitorare le callback asincrone e analizzare le prestazioni durante l’esecuzione. Poiché Node.js si basa fortemente su un’architettura non bloccante e guidata dagli eventi, gli strumenti di debug tradizionali spesso non riescono a catturare l’intero contesto di esecuzione.
Questa tesi esplora tecniche di strumentazione del codice per la verifica a runtime (RV) delle applicazioni Node.js, confrontando strumenti esistenti come Jalangi, Linvail e NodeProf. Ogni strumento viene valutato in base a caratteristiche critiche quali usabilità, documentazione, overhead prestazionale, estensibilità e supporto per le moderne funzionalità di JavaScript.
Jalangi offre potenti funzionalità di record-replay e analisi della contaminazione (taint analysis), ma soffre di un elevato overhead prestazionale. Linvail supporta l’esecuzione ombra (shadow execution) per un’instrumentazione dettagliata, ma non è efficiente nella gestione delle funzioni JavaScript integrate. NodeProf, sfruttando GraalVM, fornisce un’instrumentazione efficiente basata su AST, ma richiede ambienti di runtime specializzati.
La ricerca propone un approccio di instrumentazione che bilancia overhead, flessibilità e facilità di integrazione con librerie esterne. Inoltre, esperimenti con Aran, una libreria di instrumentazione meno conosciuta, rivelano sia il potenziale sia le sfide di approcci alternativi. I risultati contribuiscono al campo del monitoraggio a runtime di Node.js fornendo indicazioni su strategie di instrumentazione ottimali per tracciare i flussi di esecuzione e diagnosticare in modo efficiente i problemi di performance. Node.js is widely used for building scalable server-side applications, but verifying and mon
itoring their runtime behavior remains a challenge. Developers require e cient tools to
trace execution ows, monitor asynchronous callbacks, and analyze runtime performance.
Since Node.js heavily relies on non-blocking, event-driven architecture, traditional debug
ging tools often fail to capture its full execution context.
This thesis explores code instrumentation techniques for runtime veri cation (RV) of
Node.js applications, comparing existing tools such as Jalangi, Linvail, and NodeProf.
Each tool is evaluated based on critical features including usability, documentation, per
formance overhead, extensibility, and support for modern JavaScript features. Jalangi
provides powerful record-replay debugging and taint analysis but su ers from high perfor
mance overhead. Linvail supports shadow execution for detailed instrumentation but lacks
e ciency in handling built-in JavaScript functions. NodeProf, leveraging GraalVM, o ers
e cient AST-based instrumentation but requires specialized runtime environments.
The research proposes an instrumentation approach that balances overhead, exibility, and
ease of integration with external libraries. Additionally, experiments with Aran, a lesser
known instrumentation library, reveal both the potential and challenges of alternative
approaches. The ndings contribute to the eld of Node.js runtime monitoring by providing
insights into optimal instrumentation strategies for tracking execution ows and diagnosing
performance issues e ciently.
Keywords: Node.js, Runtime Monitoring, Code Instrumentation, JavaScript, Dynamic
Analysis, Jalangi, Linvail, NodeProf, Aran
Tipo
info:eu-repo/semantics/masterThesisCollezioni
- Laurea Magistrale [6794]

