Closed-form models that translate per-runtime metrics into deployment-archetype outcomes. Inputs come from the measured columns in the per-runtime summary; the math is shown alongside the score so readers can sanity-check it.
Simulated workload: 1,000,000 invocations, cold-start probability 20%. Per-invocation cost = avg latency × RSS-after-first-request (warm) + pcold × TTFR × RSS (cold tax). Result is total billable GB·seconds; lower is better.
| Rank | Runtime | Warm cost MiB·ms / req | Cold tax MiB·ms / req | Total GB·seconds | Ratio vs winner |
|---|
Simulated workload: 10,000 rps for 24 hours, instances pinned to 80% utilization, Service Level Objective (SLO) target latency 100 ms — i.e. the maximum request latency the service commits to. The simulator uses the measured max latency as a proxy: full credit at the SLO, zero credit at 2× the SLO, linear in between. Score = SLO-compliant requests served per GB·hour of cluster memory; higher is better.
| Rank | Runtime | SLO compliance | Effective rps | Instances required | Cluster RSS MiB | Score SLO-rps / GB·hour | Ratio vs winner |
|---|---|---|---|---|---|---|---|
| 1 | quarkus-virtual-semeru | 100% | 9,958 | 2 | 594 | 61,779,577 | 1.00× |
| 2 | quarkus-virtual | 100% | 10,134 | 2 | 612 | 61,053,440 | 0.99× |
| 3 | quarkus-semeru | 100% | 9,713 | 2 | 668 | 53,606,802 | 0.87× |
| 4 | quarkus-jvm | 100% | 9,871 | 2 | 702 | 51,849,102 | 0.84× |
Cells show mean ± sample standard deviation across iterations.
| Runtime | Throughput rps | TTFR ms | rps / MiB rps/MiB | RSS @ startup MiB | RSS @ 1st req MiB | RSS under load MiB | Conn err count | Timeouts count |
|---|---|---|---|---|---|---|---|---|
| quarkus-jvm | 9,871 ± 275 (CV 2.8%) | 4,001.6 ± 134.5 (CV 3.4%) | 28.14 ± 0.85 (CV 3.0%) | 264.8 ± 0.2 (CV 0.08%) | 279.5 ± 1.0 (CV 0.34%) | 350.9 ± 7.5 (CV 2.1%) | 0 ± 0 | 0 ± 0 |
| quarkus-semeru | 9,713 ± 120 (CV 1.2%) | 3,247.6 ± 77.0 (CV 2.4%) | 29.10 ± 0.76 (CV 2.6%) | 254.4 ± 0.3 (CV 0.10%) | 263.9 ± 1.1 (CV 0.42%) | 334.0 ± 6.8 (CV 2.0%) | 0 ± 0 | 0 ± 0 |
| quarkus-virtual | 10,134 ± 274 (CV 2.7%) | 3,986.1 ± 81.4 (CV 2.0%) | 33.13 ± 0.96 (CV 2.9%) | 264.9 ± 0.3 (CV 0.10%) | 280.0 ± 1.0 (CV 0.36%) | 305.9 ± 1.4 (CV 0.46%) | 0 ± 0 | 0 ± 0 |
| quarkus-virtual-semeru | 9,958 ± 204 (CV 2.0%) | 3,337.1 ± 115.6 (CV 3.5%) | 33.52 ± 0.72 (CV 2.2%) | 254.2 ± 0.2 (CV 0.08%) | 264.1 ± 1.1 (CV 0.43%) | 297.1 ± 2.1 (CV 0.69%) | 0 ± 0 | 0 ± 0 |
Bar = mean across iterations. Error bar = sample standard deviation. Runtimes that didn't produce a metric are omitted from that chart.
| Runtime | Metric | iter 0 | iter 1 | iter 2 | iter 3 | iter 4 | iter 5 | iter 6 |
|---|---|---|---|---|---|---|---|---|
| quarkus-jvm | Throughput | 9,838 | 10,299 | 10,085 | 9,946 | 9,453 | 9,670 | 9,804 |
| quarkus-jvm | TTFR | 4,046.9 | 3,885.7 | 4,079.1 | 3,776.5 | 3,999.4 | 4,189.4 | 4,034.2 |
| quarkus-jvm | rps / MiB | 28.48 | 29.60 | 28.31 | 27.30 | 27.35 | 27.38 | 28.54 |
| quarkus-jvm | RSS @ startup | 264.5 | 265.1 | 264.9 | 264.9 | 264.6 | 264.9 | 264.6 |
| quarkus-jvm | RSS @ 1st req | 278.5 | 281.5 | 279.3 | 279.8 | 279.1 | 279.3 | 279.0 |
| quarkus-jvm | RSS under load | 345.5 | 348.0 | 356.3 | 364.3 | 345.6 | 353.2 | 343.5 |
| quarkus-jvm | Conn err | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-jvm | Timeouts | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-semeru | Throughput | 9,910 | 9,732 | 9,724 | 9,617 | 9,542 | 9,669 | 9,795 |
| quarkus-semeru | TTFR | 3,230.9 | 3,239.6 | 3,160.2 | 3,215.9 | 3,406.0 | 3,214.2 | 3,266.6 |
| quarkus-semeru | rps / MiB | 29.32 | 29.07 | 28.65 | 28.47 | 28.51 | 28.99 | 30.66 |
| quarkus-semeru | RSS @ startup | 254.1 | 254.2 | 254.4 | 254.6 | 254.7 | 254.3 | 254.7 |
| quarkus-semeru | RSS @ 1st req | 265.1 | 262.7 | 263.0 | 265.4 | 263.4 | 264.8 | 263.3 |
| quarkus-semeru | RSS under load | 338.0 | 334.8 | 339.4 | 337.8 | 334.7 | 333.5 | 319.4 |
| quarkus-semeru | Conn err | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-semeru | Timeouts | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-virtual | Throughput | 10,376 | 10,389 | 10,154 | 10,170 | 9,763 | 10,334 | 9,750 |
| quarkus-virtual | TTFR | 3,879.4 | 3,953.3 | 3,928.5 | 4,053.1 | 4,047.9 | 3,938.3 | 4,102.0 |
| quarkus-virtual | rps / MiB | 33.90 | 33.93 | 33.26 | 33.26 | 31.62 | 33.93 | 31.98 |
| quarkus-virtual | RSS @ startup | 264.6 | 264.9 | 264.7 | 264.7 | 265.4 | 265.2 | 264.7 |
| quarkus-virtual | RSS @ 1st req | 279.2 | 279.6 | 279.3 | 280.0 | 280.2 | 282.1 | 279.4 |
| quarkus-virtual | RSS under load | 306.1 | 306.2 | 305.3 | 305.7 | 308.8 | 304.6 | 304.8 |
| quarkus-virtual | Conn err | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-virtual | Timeouts | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-virtual-semeru | Throughput | 10,191 | 9,945 | 10,070 | 9,758 | 9,620 | 10,001 | 10,119 |
| quarkus-virtual-semeru | TTFR | 3,518.9 | 3,222.9 | 3,420.2 | 3,386.7 | 3,183.6 | 3,309.8 | 3,317.3 |
| quarkus-virtual-semeru | rps / MiB | 34.46 | 33.63 | 34.09 | 32.79 | 32.48 | 33.20 | 33.98 |
| quarkus-virtual-semeru | RSS @ startup | 254.1 | 254.0 | 254.3 | 254.4 | 254.2 | 254.0 | 254.5 |
| quarkus-virtual-semeru | RSS @ 1st req | 265.7 | 263.1 | 263.5 | 263.7 | 263.8 | 263.1 | 265.7 |
| quarkus-virtual-semeru | RSS under load | 295.7 | 295.7 | 295.4 | 297.6 | 296.1 | 301.2 | 297.8 |
| quarkus-virtual-semeru | Conn err | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| quarkus-virtual-semeru | Timeouts | 0 | 0 | 0 | 0 | 0 | 0 | 0 |