## Stacked Bar Chart: Overall Duration of Builds
### Overview
The image is a stacked bar chart comparing the overall duration (in seconds) of building different software packages under three different configurations: HS, ES, and ES+. The chart displays the time spent in various stages of the build process, including "Start EIF", "Boot", "Runner init", "Checkout", "Configure", and "Build". Each software package has its own set of three stacked bars, one for each configuration.
### Components/Axes
* **Y-axis:** "Overall duration (s)". The scale ranges from 0 to 500, with gridlines at intervals of 100.
* **X-axis:** Categorical axis representing the software packages and their configurations. The packages are:
* GProlog (1.6.0)
* Hello (2.10)
* IPXE (1.21.1)
* Scheme48 (1.9.3)
* NeoVIM (0.11.0)
* LibSodium (1.0.20)
* TinyCC (0.9.28)
* Verifier Client
* XZ Utils (5.6.3)
Each package has three sub-categories: HS, ES, and ES+.
* **Legend:** Located at the bottom of the chart, it maps colors to build stages:
* Blue: "Start EIF"
* Light Blue: "Boot"
* Orange: "Runner init"
* Light Yellow: "Checkout"
* Light Green: "Configure"
* Dark Green: "Build"
### Detailed Analysis
Here's a breakdown of the approximate values and trends for each software package:
* **GProlog (1.6.0):**
* HS: Build time is approximately 20 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 40 seconds, totaling approximately 80 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 50 seconds, totaling approximately 90 seconds.
* **Hello (2.10):**
* HS: Build time is approximately 5 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 5 seconds, "Build" is around 5 seconds, totaling approximately 30 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 5 seconds, "Build" is around 5 seconds, totaling approximately 30 seconds.
* **IPXE (1.21.1):**
* HS: Build time is approximately 70 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 70 seconds, totaling approximately 110 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 100 seconds, totaling approximately 140 seconds.
* **Scheme48 (1.9.3):**
* HS: Build time is approximately 20 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 10 seconds, "Build" is around 30 seconds, totaling approximately 60 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 10 seconds, "Build" is around 30 seconds, totaling approximately 60 seconds.
* **NeoVIM (0.11.0):**
* HS: "Build" is approximately 250 seconds.
* ES: "Start EIF" is around 20 seconds, "Boot" is around 80 seconds, "Configure" is around 100 seconds, "Build" is around 80 seconds, totaling approximately 280 seconds.
* ES+: "Start EIF" is around 20 seconds, "Boot" is around 150 seconds, "Configure" is around 120 seconds, "Build" is around 200 seconds, totaling approximately 490 seconds.
* **LibSodium (1.0.20):**
* HS: Build time is approximately 20 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 10 seconds, "Build" is around 40 seconds, totaling approximately 70 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 10 seconds, "Build" is around 140 seconds, totaling approximately 170 seconds.
* **TinyCC (0.9.28):**
* HS: Build time is approximately 5 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 5 seconds, "Build" is around 5 seconds, totaling approximately 30 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 5 seconds, "Build" is around 5 seconds, totaling approximately 30 seconds.
* **Verifier Client:**
* HS: Build time is approximately 60 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 60 seconds, totaling approximately 100 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 120 seconds, totaling approximately 160 seconds.
* **XZ Utils (5.6.3):**
* HS: Build time is approximately 10 seconds.
* ES: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 40 seconds, totaling approximately 80 seconds.
* ES+: "Start EIF" is around 20 seconds, "Configure" is around 20 seconds, "Build" is around 110 seconds, totaling approximately 150 seconds.
### Key Observations
* NeoVIM (0.11.0) has the highest overall duration, especially in the ES+ configuration.
* Hello (2.10) and TinyCC (0.9.28) have the lowest overall durations across all configurations.
* The "Start EIF" stage consistently takes around 20 seconds across most packages and configurations.
* The "Build" stage is the most significant contributor to the overall duration for most packages.
* The ES and ES+ configurations generally have longer durations than the HS configuration.
### Interpretation
The chart provides a comparative analysis of the build times for different software packages under varying configurations. The data suggests that the ES and ES+ configurations introduce additional overhead compared to the HS configuration, likely due to additional steps or processes involved in these configurations. NeoVIM stands out as having significantly longer build times, particularly in the ES+ configuration, indicating potential performance bottlenecks or resource-intensive processes within its build system. The consistent "Start EIF" time suggests a common initialization process across all packages. The "Build" stage being the dominant factor highlights the importance of optimizing the core compilation and linking processes for each package.