Table of Contents
Fetching ...

Exploring Performance Trade-offs in JHipster

Edouard Guégain, Alexandre Bonvoisin, Clément Quinton, Mathieu Acher, Romain Rouvoy

TL;DR

This study investigates performance trade-offs in configurable software using JHipster as a concrete case. Through an exhaustive empirical evaluation of 118 configurations (version 7.9.3), the authors measure response times, power usage, and static deployment indicators to build a performance understanding and identify proxy indicators. They analyze correlations within and across indicator groups to simplify performance assessment and demonstrate option-level effects that enable near-optimal configurations for specific goals, while highlighting the need for multi-objective optimization to balance multiple indicators. The work provides a replication package and discusses generalization limits, emphasizing practical implications for designing high-performance, configurable web applications.

Abstract

The performance of software systems remains a persistent concern in the field of software engineering. While traditional metrics like binary size and execution time have long been focal points for developers, the power consumption concern has gained significant attention, adding a layer of complexity to performance evaluation. Configurable software systems, with their potential for numerous configurations, further complicate this evaluation process. In this experience paper, we examine the impact of configurations on performance, specifically focusing on the web stack generator JHipster. Our goal is to understand how configuration choices within JHipster influence the performance of the generated system. We undertake an exhaustive analysis of JHipster by examining its configurations and their effects on system performance. Additionally, we explore individual configuration options to gauge their specific influence on performance. Through this process, we develop a comprehensive performance model for JHipster, enabling us to automate the identification of configurations that optimize specific performance metrics. In particular, we identify configurations that demonstrate near-optimal performance across multiple indicators and report on significant correlations between configuration choices within JHipster and the performance of generated systems.

Exploring Performance Trade-offs in JHipster

TL;DR

This study investigates performance trade-offs in configurable software using JHipster as a concrete case. Through an exhaustive empirical evaluation of 118 configurations (version 7.9.3), the authors measure response times, power usage, and static deployment indicators to build a performance understanding and identify proxy indicators. They analyze correlations within and across indicator groups to simplify performance assessment and demonstrate option-level effects that enable near-optimal configurations for specific goals, while highlighting the need for multi-objective optimization to balance multiple indicators. The work provides a replication package and discusses generalization limits, emphasizing practical implications for designing high-performance, configurable web applications.

Abstract

The performance of software systems remains a persistent concern in the field of software engineering. While traditional metrics like binary size and execution time have long been focal points for developers, the power consumption concern has gained significant attention, adding a layer of complexity to performance evaluation. Configurable software systems, with their potential for numerous configurations, further complicate this evaluation process. In this experience paper, we examine the impact of configurations on performance, specifically focusing on the web stack generator JHipster. Our goal is to understand how configuration choices within JHipster influence the performance of the generated system. We undertake an exhaustive analysis of JHipster by examining its configurations and their effects on system performance. Additionally, we explore individual configuration options to gauge their specific influence on performance. Through this process, we develop a comprehensive performance model for JHipster, enabling us to automate the identification of configurations that optimize specific performance metrics. In particular, we identify configurations that demonstrate near-optimal performance across multiple indicators and report on significant correlations between configuration choices within JHipster and the performance of generated systems.
Paper Structure (34 sections, 4 figures, 3 tables)

This paper contains 34 sections, 4 figures, 3 tables.

Figures (4)

  • Figure 1: The variability of JHipster explored in this paper. Cross-tree constraints are hidden.
  • Figure 2: Variations in the measured indicators across configurations.
  • Figure 3: Correlations between indicators
  • Figure 4: Performance of the optimal configurations.