Università di Genova logo, link al sitoUniRe logo, link alla pagina iniziale
    • English
    • italiano
  • English 
    • English
    • italiano
  • Login
View Item 
  •   DSpace Home
  • Tesi
  • Tesi di Laurea
  • Laurea Magistrale
  • View Item
  •   DSpace Home
  • Tesi
  • Tesi di Laurea
  • Laurea Magistrale
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Studio comparativo di instrumentation tool per JavaScript per la verifica runtime di programmi Node.js

View/Open
tesi36077902.pdf (1.274Mb)
Author
Iqbal , Muhammad Ahsan <1999>
Date
2025-12-18
Data available
2025-12-25
Abstract
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
 
Type
info:eu-repo/semantics/masterThesis
Collections
  • Laurea Magistrale [6794]
URI
https://unire.unige.it/handle/123456789/14398
Metadata
Show full item record

UniRe - Università degli studi di Genova | Information and Contacts
 

 

All of DSpaceCommunities & Collections

My Account

Login

UniRe - Università degli studi di Genova | Information and Contacts