Show simple item record

dc.contributor.advisorAncona, Davide <1968>
dc.contributor.advisorLeotta, Maurizio <1983>
dc.contributor.authorIqbal , Muhammad Ahsan <1999>
dc.date.accessioned2025-12-25T14:12:28Z
dc.date.available2025-12-25T14:12:28Z
dc.date.issued2025-12-18
dc.identifier.urihttps://unire.unige.it/handle/123456789/14398
dc.description.abstractNode.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.it_IT
dc.description.abstractNode.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, Aranen_UK
dc.language.isoen
dc.rightsinfo:eu-repo/semantics/restrictedAccess
dc.titleStudio comparativo di instrumentation tool per JavaScript per la verifica runtime di programmi Node.jsit_IT
dc.title.alternativeA Comparative Study of JavaScript Instrumentation Tools for the Runtime Verification of Node.js Programsen_UK
dc.typeinfo:eu-repo/semantics/masterThesis
dc.subject.miurINF/01 - INFORMATICA
dc.publisher.nameUniversità degli studi di Genova
dc.date.academicyear2024/2025
dc.description.corsolaurea10852 - COMPUTER SCIENCE
dc.description.area7 - SCIENZE MAT.FIS.NAT.
dc.description.department100023 - DIPARTIMENTO DI INFORMATICA, BIOINGEGNERIA, ROBOTICA E INGEGNERIA DEI SISTEMI


Files in this item

This item appears in the following Collection(s)

Show simple item record