perf - Add performance report for 4.2.4 [ci skip]

This commit is contained in:
GitLab CI 2026-01-19 07:02:22 -05:00
parent 627338cdf1
commit 1def22d14d
9 changed files with 544 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

398
reports/4.2.4/perf.json Normal file
View file

@ -0,0 +1,398 @@
{
"tag": "4.2.4",
"generated_at": "2026-01-19T12:02:14Z",
"parent_pipeline_id": 11254,
"child_pipeline_id": 11256,
"summary": {
"total_tests": 682,
"passed_tests": 682,
"failed_tests": 0,
"total_languages": 42,
"passed_languages": 42,
"avg_duration_seconds": 70,
"max_duration_seconds": 110,
"min_duration_seconds": 23,
"slowest_language": "python",
"fastest_language": "c"
},
"languages": [
{
"language": "python",
"status": "Passed",
"queued_duration": 1.066003,
"started_at": "2026-01-19T11:57:12Z",
"updated_at": "2026-01-19T11:59:02Z",
"job_id": 26655,
"duration_seconds": 110
},
{
"language": "javascript",
"status": "Passed",
"queued_duration": 1.983533,
"started_at": "2026-01-19T11:57:13Z",
"updated_at": "2026-01-19T11:59:02Z",
"job_id": 26656,
"duration_seconds": 109
},
{
"language": "elixir",
"status": "Passed",
"queued_duration": 10.932191,
"started_at": "2026-01-19T11:57:24Z",
"updated_at": "2026-01-19T11:59:09Z",
"job_id": 26664,
"duration_seconds": 105
},
{
"language": "scheme",
"status": "Passed",
"queued_duration": 15.643189,
"started_at": "2026-01-19T11:57:29Z",
"updated_at": "2026-01-19T11:59:09Z",
"job_id": 26667,
"duration_seconds": 100
},
{
"language": "bash",
"status": "Passed",
"queued_duration": 10.653588,
"started_at": "2026-01-19T11:57:22Z",
"updated_at": "2026-01-19T11:59:02Z",
"job_id": 26662,
"duration_seconds": 100
},
{
"language": "erlang",
"status": "Passed",
"queued_duration": 11.875167,
"started_at": "2026-01-19T11:57:25Z",
"updated_at": "2026-01-19T11:59:02Z",
"job_id": 26665,
"duration_seconds": 97
},
{
"language": "clojure",
"status": "Passed",
"queued_duration": 18.876164,
"started_at": "2026-01-19T11:57:32Z",
"updated_at": "2026-01-19T11:59:09Z",
"job_id": 26669,
"duration_seconds": 97
},
{
"language": "tcl",
"status": "Passed",
"queued_duration": 13.286957,
"started_at": "2026-01-19T11:57:26Z",
"updated_at": "2026-01-19T11:59:02Z",
"job_id": 26666,
"duration_seconds": 96
},
{
"language": "powershell",
"status": "Passed",
"queued_duration": 17.835934,
"started_at": "2026-01-19T11:57:31Z",
"updated_at": "2026-01-19T11:59:07Z",
"job_id": 26668,
"duration_seconds": 96
},
{
"language": "rust",
"status": "Passed",
"queued_duration": 83.780984,
"started_at": "2026-01-19T11:58:38Z",
"updated_at": "2026-01-19T12:00:12Z",
"job_id": 26679,
"duration_seconds": 94
},
{
"language": "go",
"status": "Passed",
"queued_duration": 83.420239,
"started_at": "2026-01-19T11:58:38Z",
"updated_at": "2026-01-19T12:00:12Z",
"job_id": 26678,
"duration_seconds": 94
},
{
"language": "typescript",
"status": "Passed",
"queued_duration": 3.081411,
"started_at": "2026-01-19T11:57:14Z",
"updated_at": "2026-01-19T11:58:34Z",
"job_id": 26657,
"duration_seconds": 80
},
{
"language": "ruby",
"status": "Passed",
"queued_duration": 4.280641,
"started_at": "2026-01-19T11:57:15Z",
"updated_at": "2026-01-19T11:58:34Z",
"job_id": 26658,
"duration_seconds": 79
},
{
"language": "perl",
"status": "Passed",
"queued_duration": 5.752368,
"started_at": "2026-01-19T11:57:17Z",
"updated_at": "2026-01-19T11:58:34Z",
"job_id": 26659,
"duration_seconds": 77
},
{
"language": "nim",
"status": "Passed",
"queued_duration": 105.163876,
"started_at": "2026-01-19T11:59:01Z",
"updated_at": "2026-01-19T12:00:17Z",
"job_id": 26686,
"duration_seconds": 76
},
{
"language": "r",
"status": "Passed",
"queued_duration": 10.590608,
"started_at": "2026-01-19T11:57:23Z",
"updated_at": "2026-01-19T11:58:37Z",
"job_id": 26663,
"duration_seconds": 74
},
{
"language": "php",
"status": "Passed",
"queued_duration": 9.758401,
"started_at": "2026-01-19T11:57:21Z",
"updated_at": "2026-01-19T11:58:35Z",
"job_id": 26660,
"duration_seconds": 74
},
{
"language": "lua",
"status": "Passed",
"queued_duration": 10.299768,
"started_at": "2026-01-19T11:57:22Z",
"updated_at": "2026-01-19T11:58:33Z",
"job_id": 26661,
"duration_seconds": 71
},
{
"language": "objc",
"status": "Passed",
"queued_duration": 106.687178,
"started_at": "2026-01-19T11:59:03Z",
"updated_at": "2026-01-19T12:00:13Z",
"job_id": 26688,
"duration_seconds": 70
},
{
"language": "julia",
"status": "Passed",
"queued_duration": 108.45782,
"started_at": "2026-01-19T11:59:05Z",
"updated_at": "2026-01-19T12:00:13Z",
"job_id": 26690,
"duration_seconds": 68
},
{
"language": "haskell",
"status": "Passed",
"queued_duration": 108.729615,
"started_at": "2026-01-19T11:59:06Z",
"updated_at": "2026-01-19T12:00:12Z",
"job_id": 26691,
"duration_seconds": 66
},
{
"language": "ocaml",
"status": "Passed",
"queued_duration": 109.391015,
"started_at": "2026-01-19T11:59:07Z",
"updated_at": "2026-01-19T12:00:11Z",
"job_id": 26692,
"duration_seconds": 64
},
{
"language": "csharp",
"status": "Passed",
"queued_duration": 112.051991,
"started_at": "2026-01-19T11:59:10Z",
"updated_at": "2026-01-19T12:00:13Z",
"job_id": 26694,
"duration_seconds": 63
},
{
"language": "fsharp",
"status": "Passed",
"queued_duration": 111.929733,
"started_at": "2026-01-19T11:59:10Z",
"updated_at": "2026-01-19T12:00:12Z",
"job_id": 26693,
"duration_seconds": 62
},
{
"language": "prolog",
"status": "Passed",
"queued_duration": 112.203692,
"started_at": "2026-01-19T11:59:11Z",
"updated_at": "2026-01-19T12:00:12Z",
"job_id": 26695,
"duration_seconds": 61
},
{
"language": "zig",
"status": "Passed",
"queued_duration": 87.14355,
"started_at": "2026-01-19T11:58:43Z",
"updated_at": "2026-01-19T11:59:43Z",
"job_id": 26685,
"duration_seconds": 60
},
{
"language": "crystal",
"status": "Passed",
"queued_duration": 24.211899,
"started_at": "2026-01-19T11:57:38Z",
"updated_at": "2026-01-19T11:58:38Z",
"job_id": 26671,
"duration_seconds": 60
},
{
"language": "commonlisp",
"status": "Passed",
"queued_duration": 23.557732,
"started_at": "2026-01-19T11:57:37Z",
"updated_at": "2026-01-19T11:58:37Z",
"job_id": 26670,
"duration_seconds": 60
},
{
"language": "groovy",
"status": "Passed",
"queued_duration": 25.052612,
"started_at": "2026-01-19T11:57:39Z",
"updated_at": "2026-01-19T11:58:38Z",
"job_id": 26672,
"duration_seconds": 59
},
{
"language": "dart",
"status": "Passed",
"queued_duration": 107.61224,
"started_at": "2026-01-19T11:59:04Z",
"updated_at": "2026-01-19T12:00:02Z",
"job_id": 26689,
"duration_seconds": 58
},
{
"language": "java",
"status": "Passed",
"queued_duration": 84.459906,
"started_at": "2026-01-19T11:58:39Z",
"updated_at": "2026-01-19T11:59:36Z",
"job_id": 26680,
"duration_seconds": 57
},
{
"language": "deno",
"status": "Passed",
"queued_duration": 30.939493,
"started_at": "2026-01-19T11:57:41Z",
"updated_at": "2026-01-19T11:58:37Z",
"job_id": 26673,
"duration_seconds": 56
},
{
"language": "kotlin",
"status": "Passed",
"queued_duration": 85.025138,
"started_at": "2026-01-19T11:58:40Z",
"updated_at": "2026-01-19T11:59:34Z",
"job_id": 26681,
"duration_seconds": 54
},
{
"language": "fortran",
"status": "Passed",
"queued_duration": 86.29317,
"started_at": "2026-01-19T11:58:41Z",
"updated_at": "2026-01-19T11:59:32Z",
"job_id": 26683,
"duration_seconds": 51
},
{
"language": "awk",
"status": "Passed",
"queued_duration": 30.55611,
"started_at": "2026-01-19T11:57:45Z",
"updated_at": "2026-01-19T11:58:36Z",
"job_id": 26674,
"duration_seconds": 51
},
{
"language": "v",
"status": "Passed",
"queued_duration": 106.008484,
"started_at": "2026-01-19T11:59:02Z",
"updated_at": "2026-01-19T11:59:51Z",
"job_id": 26687,
"duration_seconds": 49
},
{
"language": "forth",
"status": "Passed",
"queued_duration": 123.191673,
"started_at": "2026-01-19T11:59:22Z",
"updated_at": "2026-01-19T12:00:11Z",
"job_id": 26696,
"duration_seconds": 49
},
{
"language": "cpp",
"status": "Passed",
"queued_duration": 4.043448,
"started_at": "2026-01-19T12:00:14Z",
"updated_at": "2026-01-19T12:01:03Z",
"job_id": 26699,
"duration_seconds": 49
},
{
"language": "raku",
"status": "Passed",
"queued_duration": 1.095893,
"started_at": "2026-01-19T11:59:43Z",
"updated_at": "2026-01-19T12:00:28Z",
"job_id": 26697,
"duration_seconds": 45
},
{
"language": "cobol",
"status": "Passed",
"queued_duration": 85.56591,
"started_at": "2026-01-19T11:58:41Z",
"updated_at": "2026-01-19T11:59:24Z",
"job_id": 26682,
"duration_seconds": 43
},
{
"language": "d",
"status": "Passed",
"queued_duration": 86.577891,
"started_at": "2026-01-19T11:58:42Z",
"updated_at": "2026-01-19T11:59:22Z",
"job_id": 26684,
"duration_seconds": 40
},
{
"language": "c",
"status": "Passed",
"queued_duration": 3.106438,
"started_at": "2026-01-19T12:00:02Z",
"updated_at": "2026-01-19T12:00:25Z",
"job_id": 26698,
"duration_seconds": 23
}
]
}

145
reports/4.2.4/perf.md Normal file
View file

@ -0,0 +1,145 @@
# Performance Report: 4.2.4
**Generated:** 2026-01-19T12:02:14Z
**Pipeline:** [#11256](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/11256)
## Summary
| Metric | Value |
|--------|-------|
| Total Tests | 682 |
| Passed | 682 |
| Failed | 0 |
| Pass Rate | 100.0% |
| Languages | 42 |
| Avg Duration | 70s |
| Slowest | python (110s) |
| Fastest | c (23s) |
---
## 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:**
- **PYTHON** and **JAVASCRIPT** are outliers at 90+ seconds
- Most languages cluster between 20-40 seconds
- Compiled languages (red) tend to be faster than interpreted (blue)
- **C** is the fastest at 23 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 42 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 (python, javascript)
---
## Speed Leaders
Side-by-side comparison of the 10 slowest and 10 fastest languages.
![Speed Leaders](chart-speed-leaders.png)
**Slowest (left):** PYTHON, JAVASCRIPT, ELIXIR, SCHEME, BASH
**Fastest (right):** C, D, COBOL, RAKU, CPP
---
## 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 - python and javascript 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 |
|----------|--------|----------|
| python | Passed | 110s |
| javascript | Passed | 109s |
| elixir | Passed | 105s |
| scheme | Passed | 100s |
| bash | Passed | 100s |
| erlang | Passed | 97s |
| clojure | Passed | 97s |
| tcl | Passed | 96s |
| powershell | Passed | 96s |
| rust | Passed | 94s |
| go | Passed | 94s |
| typescript | Passed | 80s |
| ruby | Passed | 79s |
| perl | Passed | 77s |
| nim | Passed | 76s |
| r | Passed | 74s |
| php | Passed | 74s |
| lua | Passed | 71s |
| objc | Passed | 70s |
| julia | Passed | 68s |
| haskell | Passed | 66s |
| ocaml | Passed | 64s |
| csharp | Passed | 63s |
| fsharp | Passed | 62s |
| prolog | Passed | 61s |
| zig | Passed | 60s |
| crystal | Passed | 60s |
| commonlisp | Passed | 60s |
| groovy | Passed | 59s |
| dart | Passed | 58s |
| java | Passed | 57s |
| deno | Passed | 56s |
| kotlin | Passed | 54s |
| fortran | Passed | 51s |
| awk | Passed | 51s |
| v | Passed | 49s |
| forth | Passed | 49s |
| cpp | Passed | 49s |
| raku | Passed | 45s |
| cobol | Passed | 43s |
| d | Passed | 40s |
| c | Passed | 23s |
---
*Report generated by UN Inception CI pipeline*

View file

@ -8,3 +8,4 @@ Tracking compile and test execution times across releases.
|---------|------|-------|-----------|--------------|---------|---------|
| 4.2.0 | 2026-01-18 | 642 | 100.0% | 33s | raku | ocaml |
| 4.2.3 | 2026-01-19 | 642 | 100.0% | 63s | rust | v |
| 4.2.4 | 2026-01-19 | 682 | 100.0% | 70s | python | c |