perf - Add performance report for 4.2.12 [ci skip]

This commit is contained in:
GitLab CI 2026-01-23 08:30:32 -05:00
parent 310cbc84b2
commit 7f5b0551be
3 changed files with 554 additions and 0 deletions

407
reports/4.2.12/perf.json Normal file
View file

@ -0,0 +1,407 @@
{
"tag": "4.2.12",
"generated_at": "2026-01-23T13:30:32Z",
"parent_pipeline_id": 12115,
"child_pipeline_id": 12117,
"summary": {
"total_tests": 665,
"passed_tests": 665,
"failed_tests": 0,
"total_languages": 43,
"passed_languages": 43,
"avg_duration_seconds": 142,
"max_duration_seconds": 406,
"min_duration_seconds": 21,
"slowest_language": "go",
"fastest_language": "erlang"
},
"languages": [
{
"language": "go",
"status": "Passed",
"queued_duration": 41.583969,
"started_at": "2026-01-23T13:22:14Z",
"updated_at": "2026-01-23T13:29:00Z",
"job_id": 29410,
"duration_seconds": 406
},
{
"language": "crystal",
"status": "Passed",
"queued_duration": 36.366243,
"started_at": "2026-01-23T13:22:08Z",
"updated_at": "2026-01-23T13:28:45Z",
"job_id": 29403,
"duration_seconds": 397
},
{
"language": "groovy",
"status": "Passed",
"queued_duration": 38.523149,
"started_at": "2026-01-23T13:22:10Z",
"updated_at": "2026-01-23T13:28:43Z",
"job_id": 29404,
"duration_seconds": 393
},
{
"language": "deno",
"status": "Passed",
"queued_duration": 40.727393,
"started_at": "2026-01-23T13:22:11Z",
"updated_at": "2026-01-23T13:27:21Z",
"job_id": 29405,
"duration_seconds": 310
},
{
"language": "awk",
"status": "Passed",
"queued_duration": 41.223654,
"started_at": "2026-01-23T13:22:11Z",
"updated_at": "2026-01-23T13:27:17Z",
"job_id": 29406,
"duration_seconds": 306
},
{
"language": "cobol",
"status": "Passed",
"queued_duration": 139.467006,
"started_at": "2026-01-23T13:23:52Z",
"updated_at": "2026-01-23T13:28:42Z",
"job_id": 29414,
"duration_seconds": 290
},
{
"language": "clojure",
"status": "Passed",
"queued_duration": 25.666374,
"started_at": "2026-01-23T13:21:57Z",
"updated_at": "2026-01-23T13:26:11Z",
"job_id": 29401,
"duration_seconds": 254
},
{
"language": "rust",
"status": "Passed",
"queued_duration": 65.344725,
"started_at": "2026-01-23T13:22:38Z",
"updated_at": "2026-01-23T13:26:25Z",
"job_id": 29411,
"duration_seconds": 227
},
{
"language": "scheme",
"status": "Passed",
"queued_duration": 19.277813,
"started_at": "2026-01-23T13:21:50Z",
"updated_at": "2026-01-23T13:25:15Z",
"job_id": 29399,
"duration_seconds": 205
},
{
"language": "zig",
"status": "Passed",
"queued_duration": 143.055169,
"started_at": "2026-01-23T13:23:57Z",
"updated_at": "2026-01-23T13:27:16Z",
"job_id": 29417,
"duration_seconds": 199
},
{
"language": "forth",
"status": "Passed",
"queued_duration": 218.730592,
"started_at": "2026-01-23T13:25:15Z",
"updated_at": "2026-01-23T13:28:13Z",
"job_id": 29429,
"duration_seconds": 178
},
{
"language": "r",
"status": "Passed",
"queued_duration": 17.546631,
"started_at": "2026-01-23T13:21:47Z",
"updated_at": "2026-01-23T13:24:36Z",
"job_id": 29395,
"duration_seconds": 169
},
{
"language": "bash",
"status": "Passed",
"queued_duration": 16.509548,
"started_at": "2026-01-23T13:21:46Z",
"updated_at": "2026-01-23T13:24:35Z",
"job_id": 29394,
"duration_seconds": 169
},
{
"language": "csharp",
"status": "Passed",
"queued_duration": 187.021072,
"started_at": "2026-01-23T13:24:39Z",
"updated_at": "2026-01-23T13:27:16Z",
"job_id": 29426,
"duration_seconds": 157
},
{
"language": "fsharp",
"status": "Passed",
"queued_duration": 186.563422,
"started_at": "2026-01-23T13:24:39Z",
"updated_at": "2026-01-23T13:27:15Z",
"job_id": 29425,
"duration_seconds": 156
},
{
"language": "c",
"status": "Passed",
"queued_duration": 40.971826,
"started_at": "2026-01-23T13:22:13Z",
"updated_at": "2026-01-23T13:24:36Z",
"job_id": 29408,
"duration_seconds": 143
},
{
"language": "ruby",
"status": "Passed",
"queued_duration": 12.231573,
"started_at": "2026-01-23T13:21:41Z",
"updated_at": "2026-01-23T13:23:57Z",
"job_id": 29390,
"duration_seconds": 136
},
{
"language": "typescript",
"status": "Passed",
"queued_duration": 11.043946,
"started_at": "2026-01-23T13:21:40Z",
"updated_at": "2026-01-23T13:23:52Z",
"job_id": 29389,
"duration_seconds": 132
},
{
"language": "dotnet",
"status": "Passed",
"queued_duration": 212.783708,
"started_at": "2026-01-23T13:25:09Z",
"updated_at": "2026-01-23T13:27:14Z",
"job_id": 29427,
"duration_seconds": 125
},
{
"language": "prolog",
"status": "Passed",
"queued_duration": 215.909256,
"started_at": "2026-01-23T13:25:12Z",
"updated_at": "2026-01-23T13:27:16Z",
"job_id": 29428,
"duration_seconds": 124
},
{
"language": "elixir",
"status": "Passed",
"queued_duration": 17.989889,
"started_at": "2026-01-23T13:21:48Z",
"updated_at": "2026-01-23T13:23:52Z",
"job_id": 29396,
"duration_seconds": 124
},
{
"language": "tcl",
"status": "Passed",
"queued_duration": 18.745656,
"started_at": "2026-01-23T13:21:49Z",
"updated_at": "2026-01-23T13:23:52Z",
"job_id": 29398,
"duration_seconds": 123
},
{
"language": "java",
"status": "Passed",
"queued_duration": 65.908662,
"started_at": "2026-01-23T13:22:39Z",
"updated_at": "2026-01-23T13:24:35Z",
"job_id": 29412,
"duration_seconds": 116
},
{
"language": "kotlin",
"status": "Passed",
"queued_duration": 66.343916,
"started_at": "2026-01-23T13:22:39Z",
"updated_at": "2026-01-23T13:24:34Z",
"job_id": 29413,
"duration_seconds": 115
},
{
"language": "julia",
"status": "Passed",
"queued_duration": 181.477057,
"started_at": "2026-01-23T13:24:37Z",
"updated_at": "2026-01-23T13:26:24Z",
"job_id": 29422,
"duration_seconds": 107
},
{
"language": "cpp",
"status": "Passed",
"queued_duration": 41.136394,
"started_at": "2026-01-23T13:22:13Z",
"updated_at": "2026-01-23T13:23:59Z",
"job_id": 29409,
"duration_seconds": 106
},
{
"language": "raku",
"status": "Passed",
"queued_duration": 40.504061,
"started_at": "2026-01-23T13:22:12Z",
"updated_at": "2026-01-23T13:23:53Z",
"job_id": 29407,
"duration_seconds": 101
},
{
"language": "dart",
"status": "Passed",
"queued_duration": 181.285552,
"started_at": "2026-01-23T13:24:36Z",
"updated_at": "2026-01-23T13:26:17Z",
"job_id": 29421,
"duration_seconds": 101
},
{
"language": "v",
"status": "Passed",
"queued_duration": 179.048397,
"started_at": "2026-01-23T13:24:34Z",
"updated_at": "2026-01-23T13:26:14Z",
"job_id": 29419,
"duration_seconds": 100
},
{
"language": "objc",
"status": "Passed",
"queued_duration": 180.329094,
"started_at": "2026-01-23T13:24:35Z",
"updated_at": "2026-01-23T13:26:14Z",
"job_id": 29420,
"duration_seconds": 99
},
{
"language": "ocaml",
"status": "Passed",
"queued_duration": 182.274986,
"started_at": "2026-01-23T13:24:38Z",
"updated_at": "2026-01-23T13:26:16Z",
"job_id": 29424,
"duration_seconds": 98
},
{
"language": "powershell",
"status": "Passed",
"queued_duration": 0.907876,
"started_at": "2026-01-23T13:26:16Z",
"updated_at": "2026-01-23T13:27:14Z",
"job_id": 29443,
"duration_seconds": 58
},
{
"language": "perl",
"status": "Passed",
"queued_duration": 13.41398,
"started_at": "2026-01-23T13:21:43Z",
"updated_at": "2026-01-23T13:22:38Z",
"job_id": 29391,
"duration_seconds": 55
},
{
"language": "lua",
"status": "Passed",
"queued_duration": 15.326562,
"started_at": "2026-01-23T13:21:45Z",
"updated_at": "2026-01-23T13:22:38Z",
"job_id": 29393,
"duration_seconds": 53
},
{
"language": "fortran",
"status": "Passed",
"queued_duration": 139.486042,
"started_at": "2026-01-23T13:23:53Z",
"updated_at": "2026-01-23T13:24:36Z",
"job_id": 29415,
"duration_seconds": 43
},
{
"language": "d",
"status": "Passed",
"queued_duration": 139.481933,
"started_at": "2026-01-23T13:23:54Z",
"updated_at": "2026-01-23T13:24:34Z",
"job_id": 29416,
"duration_seconds": 40
},
{
"language": "commonlisp",
"status": "Passed",
"queued_duration": 27.617889,
"started_at": "2026-01-23T13:21:59Z",
"updated_at": "2026-01-23T13:22:38Z",
"job_id": 29402,
"duration_seconds": 39
},
{
"language": "nim",
"status": "Passed",
"queued_duration": 145.858834,
"started_at": "2026-01-23T13:24:00Z",
"updated_at": "2026-01-23T13:24:36Z",
"job_id": 29418,
"duration_seconds": 36
},
{
"language": "javascript",
"status": "Passed",
"queued_duration": 10.234596,
"started_at": "2026-01-23T13:21:39Z",
"updated_at": "2026-01-23T13:22:11Z",
"job_id": 29388,
"duration_seconds": 32
},
{
"language": "haskell",
"status": "Passed",
"queued_duration": 181.904614,
"started_at": "2026-01-23T13:24:37Z",
"updated_at": "2026-01-23T13:25:09Z",
"job_id": 29423,
"duration_seconds": 32
},
{
"language": "python",
"status": "Passed",
"queued_duration": 9.866286,
"started_at": "2026-01-23T13:21:39Z",
"updated_at": "2026-01-23T13:22:08Z",
"job_id": 29387,
"duration_seconds": 29
},
{
"language": "php",
"status": "Passed",
"queued_duration": 14.704303,
"started_at": "2026-01-23T13:21:44Z",
"updated_at": "2026-01-23T13:22:10Z",
"job_id": 29392,
"duration_seconds": 26
},
{
"language": "erlang",
"status": "Passed",
"queued_duration": 18.286508,
"started_at": "2026-01-23T13:21:49Z",
"updated_at": "2026-01-23T13:22:10Z",
"job_id": 29397,
"duration_seconds": 21
}
]
}

146
reports/4.2.12/perf.md Normal file
View file

@ -0,0 +1,146 @@
# Performance Report: 4.2.12
**Generated:** 2026-01-23T13:30:32Z
**Pipeline:** [#12117](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/12117)
## Summary
| Metric | Value |
|--------|-------|
| Total Tests | 665 |
| Passed | 665 |
| Failed | 0 |
| Pass Rate | 100.0% |
| Languages | 43 |
| Avg Duration | 142s |
| Slowest | go (406s) |
| Fastest | erlang (21s) |
---
## Test Duration by Language
The primary performance metric - how long each language takes to run its full test suite (15 tests per language).
![Duration by Language](chart-duration-by-language.png)
**Key observations:**
- **GO** and **CRYSTAL** are outliers at 90+ seconds
- Most languages cluster between 20-40 seconds
- Compiled languages (red) tend to be faster than interpreted (blue)
- **ERLANG** is the fastest at 21 seconds
---
## Compiled vs Interpreted
Comparing performance between compiled languages (C, Go, Rust, etc.) and interpreted languages (Python, Ruby, JavaScript, etc.).
![Category Comparison](chart-category-comparison.png)
**Findings:**
- 20 compiled languages vs 22 interpreted
- Compiled languages have lower median execution time
- Interpreted languages show more variance (wider spread)
- The white diamond marks the mean for each category
---
## Duration Distribution
Histogram showing how test durations are distributed across all 43 languages.
![Duration Histogram](chart-duration-histogram.png)
**Distribution analysis:**
- Most languages complete in 20-35 seconds (the peak)
- Mean (green dashed) and median (blue dotted) are close together
- Long tail on the right from slow outliers (go, crystal)
---
## Speed Leaders
Side-by-side comparison of the 10 slowest and 10 fastest languages.
![Speed Leaders](chart-speed-leaders.png)
**Slowest (left):** GO, CRYSTAL, GROOVY, DENO, AWK
**Fastest (right):** ERLANG, PHP, PYTHON, HASKELL, JAVASCRIPT
---
## Queue vs Execution Time
Scatter plot showing the relationship between CI queue wait time and actual test execution time.
![Queue vs Execution](chart-queue-vs-execution.png)
**Notes:**
- Queue time is how long the job waited for a runner
- Most jobs had similar queue times (clustered vertically)
- Outliers labeled - go and crystal took longest to execute regardless of queue time
---
## Dashboard
Summary dashboard combining key metrics and visualizations.
![Dashboard](chart-dashboard.png)
---
## Raw Data
### Per-Language Performance
| Language | Status | Duration |
|----------|--------|----------|
| go | Passed | 406s |
| crystal | Passed | 397s |
| groovy | Passed | 393s |
| deno | Passed | 310s |
| awk | Passed | 306s |
| cobol | Passed | 290s |
| clojure | Passed | 254s |
| rust | Passed | 227s |
| scheme | Passed | 205s |
| zig | Passed | 199s |
| forth | Passed | 178s |
| r | Passed | 169s |
| bash | Passed | 169s |
| csharp | Passed | 157s |
| fsharp | Passed | 156s |
| c | Passed | 143s |
| ruby | Passed | 136s |
| typescript | Passed | 132s |
| dotnet | Passed | 125s |
| prolog | Passed | 124s |
| elixir | Passed | 124s |
| tcl | Passed | 123s |
| java | Passed | 116s |
| kotlin | Passed | 115s |
| julia | Passed | 107s |
| cpp | Passed | 106s |
| raku | Passed | 101s |
| dart | Passed | 101s |
| v | Passed | 100s |
| objc | Passed | 99s |
| ocaml | Passed | 98s |
| powershell | Passed | 58s |
| perl | Passed | 55s |
| lua | Passed | 53s |
| fortran | Passed | 43s |
| d | Passed | 40s |
| commonlisp | Passed | 39s |
| nim | Passed | 36s |
| javascript | Passed | 32s |
| haskell | Passed | 32s |
| python | Passed | 29s |
| php | Passed | 26s |
| erlang | Passed | 21s |
---
*Report generated by UN Inception CI pipeline*

View file

@ -16,3 +16,4 @@ Tracking compile and test execution times across releases.
| 4.2.9 | 2026-01-23 | 645 | 100.0% | 107s | ruby | d |
| 4.2.10 | 2026-01-23 | 673 | 99.7% | 153s | scheme | bash |
| 4.2.11 | 2026-01-23 | 669 | 100.0% | 103s | deno | cpp |
| 4.2.12 | 2026-01-23 | 665 | 100.0% | 142s | go | erlang |