This thesis aims to systematically analyze memory management in the Node.js runtime, with the objective of understanding how the configuration parameters exposed by the V8 JavaScript engine influence memory usage and overall application performance. The work begins with an in-depth study of the V8 memory management architecture, with particular attention to the memory spaces allocated for the garbage collector and the mechanisms used for automatic memory reclamation. Subsequently, the main configuration parameters are identified and analyzed in order to evaluate their effects under different application workloads. To measure the impact of the adopted configurations, benchmark tests are designed and executed on Node.js applications representative of different usage patterns. The collected metrics focus primarily on heap memory usage and garbage collector behavior, with the goal of analyzing the variations induced by different configurations. The results of this study enable the formulation of empirical observations on the impact of memory management configuration parameters in the Node.js runtime, providing useful insights into the trade-offs associated with garbage collector tuning with respect to the considered application profiles.

l presente progetto di tesi si propone di analizzare in modo sistematico la gestione della memoria nel runtime Node.js, con l'obiettivo di comprendere in che modo i parametri di configurazione esposti dalla JavaScript Engine V8 influenzino l'utilizzo della memoria e le prestazioni complessive delle applicazioni. Nei primi capitoli si prevede uno studio approfondito dell’architettura della gestione della memoria in V8, con particolare attenzione agli spazi allocati per il garbage collector e ai meccanismi di raccolta automatica della memoria. Successivamente verranno identificati e analizzati i principali parametri di configurazione, al fine di valutarne l’effetto su carichi applicativi differenti. Per misurare l’impatto delle configurazioni adottate, verranno progettati ed eseguiti test su benchmark di applicazioni Node.js rappresentative di diversi pattern di utilizzo. Le metriche raccolte riguarderanno principalmente l’utilizzo della memoria heap e il comportamento del garbage collector, con l’obiettivo di analizzare le variazioni indotte dalle diverse configurazioni. I risultati ottenuti consentiranno di formulare osservazioni empiriche sull’impatto dei parametri di configurazione della gestione della memoria nel runtime Node.js, fornendo elementi utili per comprendere i trade-off associati al tuning del garbage collector in relazione al profilo applicativo considerato.

Study of impact of parameter tuning on Node.js Garbage Collector

BORSATO, ALESSANDRO
2025/2026

Abstract

This thesis aims to systematically analyze memory management in the Node.js runtime, with the objective of understanding how the configuration parameters exposed by the V8 JavaScript engine influence memory usage and overall application performance. The work begins with an in-depth study of the V8 memory management architecture, with particular attention to the memory spaces allocated for the garbage collector and the mechanisms used for automatic memory reclamation. Subsequently, the main configuration parameters are identified and analyzed in order to evaluate their effects under different application workloads. To measure the impact of the adopted configurations, benchmark tests are designed and executed on Node.js applications representative of different usage patterns. The collected metrics focus primarily on heap memory usage and garbage collector behavior, with the goal of analyzing the variations induced by different configurations. The results of this study enable the formulation of empirical observations on the impact of memory management configuration parameters in the Node.js runtime, providing useful insights into the trade-offs associated with garbage collector tuning with respect to the considered application profiles.
2025
Study of impact of parameter tuning on Node.js Garbage Collector
l presente progetto di tesi si propone di analizzare in modo sistematico la gestione della memoria nel runtime Node.js, con l'obiettivo di comprendere in che modo i parametri di configurazione esposti dalla JavaScript Engine V8 influenzino l'utilizzo della memoria e le prestazioni complessive delle applicazioni. Nei primi capitoli si prevede uno studio approfondito dell’architettura della gestione della memoria in V8, con particolare attenzione agli spazi allocati per il garbage collector e ai meccanismi di raccolta automatica della memoria. Successivamente verranno identificati e analizzati i principali parametri di configurazione, al fine di valutarne l’effetto su carichi applicativi differenti. Per misurare l’impatto delle configurazioni adottate, verranno progettati ed eseguiti test su benchmark di applicazioni Node.js rappresentative di diversi pattern di utilizzo. Le metriche raccolte riguarderanno principalmente l’utilizzo della memoria heap e il comportamento del garbage collector, con l’obiettivo di analizzare le variazioni indotte dalle diverse configurazioni. I risultati ottenuti consentiranno di formulare osservazioni empiriche sull’impatto dei parametri di configurazione della gestione della memoria nel runtime Node.js, fornendo elementi utili per comprendere i trade-off associati al tuning del garbage collector in relazione al profilo applicativo considerato.
Garbage Collector
Node.js
Tuning
File in questo prodotto:
File Dimensione Formato  
Borsato_Alessandro.pdf

accesso aperto

Dimensione 2.8 MB
Formato Adobe PDF
2.8 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/109378