perf - Add performance report for 4.2.7 [ci skip]

This commit is contained in:
GitLab CI 2026-01-23 04:36:23 -05:00
parent 3360422575
commit 7751529896
9 changed files with 554 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

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

@ -0,0 +1,407 @@
{
"tag": "4.2.7",
"generated_at": "2026-01-23T09:36:18Z",
"parent_pipeline_id": 12041,
"child_pipeline_id": 12043,
"summary": {
"total_tests": 631,
"passed_tests": 630,
"failed_tests": 0,
"total_languages": 43,
"passed_languages": 43,
"avg_duration_seconds": 117,
"max_duration_seconds": 319,
"min_duration_seconds": 5,
"slowest_language": "typescript",
"fastest_language": "dotnet"
},
"languages": [
{
"language": "typescript",
"status": "Passed",
"queued_duration": 11.153364,
"started_at": "2026-01-23T09:28:36Z",
"updated_at": "2026-01-23T09:33:55Z",
"job_id": 28924,
"duration_seconds": 319
},
{
"language": "ruby",
"status": "Passed",
"queued_duration": 11.942171,
"started_at": "2026-01-23T09:28:37Z",
"updated_at": "2026-01-23T09:33:55Z",
"job_id": 28925,
"duration_seconds": 318
},
{
"language": "r",
"status": "Passed",
"queued_duration": 15.963903,
"started_at": "2026-01-23T09:28:42Z",
"updated_at": "2026-01-23T09:33:55Z",
"job_id": 28930,
"duration_seconds": 313
},
{
"language": "elixir",
"status": "Passed",
"queued_duration": 16.534847,
"started_at": "2026-01-23T09:28:42Z",
"updated_at": "2026-01-23T09:33:55Z",
"job_id": 28931,
"duration_seconds": 313
},
{
"language": "crystal",
"status": "Passed",
"queued_duration": 66.503838,
"started_at": "2026-01-23T09:29:33Z",
"updated_at": "2026-01-23T09:33:53Z",
"job_id": 28938,
"duration_seconds": 260
},
{
"language": "php",
"status": "Passed",
"queued_duration": 13.530504,
"started_at": "2026-01-23T09:28:39Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28927,
"duration_seconds": 235
},
{
"language": "bash",
"status": "Passed",
"queued_duration": 15.3353,
"started_at": "2026-01-23T09:28:41Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28929,
"duration_seconds": 233
},
{
"language": "julia",
"status": "Passed",
"queued_duration": 167.871598,
"started_at": "2026-01-23T09:31:18Z",
"updated_at": "2026-01-23T09:35:04Z",
"job_id": 28957,
"duration_seconds": 226
},
{
"language": "objc",
"status": "Passed",
"queued_duration": 166.890194,
"started_at": "2026-01-23T09:31:16Z",
"updated_at": "2026-01-23T09:34:59Z",
"job_id": 28955,
"duration_seconds": 223
},
{
"language": "perl",
"status": "Passed",
"queued_duration": 12.791598,
"started_at": "2026-01-23T09:28:38Z",
"updated_at": "2026-01-23T09:31:13Z",
"job_id": 28926,
"duration_seconds": 155
},
{
"language": "javascript",
"status": "Passed",
"queued_duration": 10.512285,
"started_at": "2026-01-23T09:28:35Z",
"updated_at": "2026-01-23T09:31:10Z",
"job_id": 28923,
"duration_seconds": 155
},
{
"language": "lua",
"status": "Passed",
"queued_duration": 14.798069,
"started_at": "2026-01-23T09:28:40Z",
"updated_at": "2026-01-23T09:31:12Z",
"job_id": 28928,
"duration_seconds": 152
},
{
"language": "tcl",
"status": "Passed",
"queued_duration": 17.404089,
"started_at": "2026-01-23T09:28:44Z",
"updated_at": "2026-01-23T09:31:12Z",
"job_id": 28933,
"duration_seconds": 148
},
{
"language": "erlang",
"status": "Passed",
"queued_duration": 17.068234,
"started_at": "2026-01-23T09:28:43Z",
"updated_at": "2026-01-23T09:31:11Z",
"job_id": 28932,
"duration_seconds": 148
},
{
"language": "scheme",
"status": "Passed",
"queued_duration": 18.262856,
"started_at": "2026-01-23T09:28:45Z",
"updated_at": "2026-01-23T09:31:11Z",
"job_id": 28934,
"duration_seconds": 146
},
{
"language": "powershell",
"status": "Passed",
"queued_duration": 19.538053,
"started_at": "2026-01-23T09:28:46Z",
"updated_at": "2026-01-23T09:31:07Z",
"job_id": 28935,
"duration_seconds": 141
},
{
"language": "dart",
"status": "Passed",
"queued_duration": 167.347896,
"started_at": "2026-01-23T09:31:17Z",
"updated_at": "2026-01-23T09:33:07Z",
"job_id": 28956,
"duration_seconds": 110
},
{
"language": "raku",
"status": "Passed",
"queued_duration": 71.028074,
"started_at": "2026-01-23T09:29:38Z",
"updated_at": "2026-01-23T09:31:10Z",
"job_id": 28942,
"duration_seconds": 92
},
{
"language": "go",
"status": "Passed",
"queued_duration": 91.903224,
"started_at": "2026-01-23T09:30:00Z",
"updated_at": "2026-01-23T09:31:26Z",
"job_id": 28945,
"duration_seconds": 86
},
{
"language": "zig",
"status": "Passed",
"queued_duration": 165.566844,
"started_at": "2026-01-23T09:31:15Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28952,
"duration_seconds": 79
},
{
"language": "d",
"status": "Passed",
"queued_duration": 165.11659,
"started_at": "2026-01-23T09:31:14Z",
"updated_at": "2026-01-23T09:32:32Z",
"job_id": 28951,
"duration_seconds": 78
},
{
"language": "nim",
"status": "Passed",
"queued_duration": 165.957378,
"started_at": "2026-01-23T09:31:15Z",
"updated_at": "2026-01-23T09:32:32Z",
"job_id": 28953,
"duration_seconds": 77
},
{
"language": "v",
"status": "Passed",
"queued_duration": 166.418392,
"started_at": "2026-01-23T09:31:16Z",
"updated_at": "2026-01-23T09:32:32Z",
"job_id": 28954,
"duration_seconds": 76
},
{
"language": "haskell",
"status": "Passed",
"queued_duration": 168.268016,
"started_at": "2026-01-23T09:31:18Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28958,
"duration_seconds": 76
},
{
"language": "cpp",
"status": "Passed",
"queued_duration": 91.583485,
"started_at": "2026-01-23T09:29:59Z",
"updated_at": "2026-01-23T09:31:14Z",
"job_id": 28944,
"duration_seconds": 75
},
{
"language": "c",
"status": "Passed",
"queued_duration": 91.144879,
"started_at": "2026-01-23T09:29:59Z",
"updated_at": "2026-01-23T09:31:11Z",
"job_id": 28943,
"duration_seconds": 72
},
{
"language": "forth",
"status": "Passed",
"queued_duration": 213.956327,
"started_at": "2026-01-23T09:32:05Z",
"updated_at": "2026-01-23T09:33:16Z",
"job_id": 28964,
"duration_seconds": 71
},
{
"language": "rust",
"status": "Passed",
"queued_duration": 92.722689,
"started_at": "2026-01-23T09:30:01Z",
"updated_at": "2026-01-23T09:31:10Z",
"job_id": 28946,
"duration_seconds": 69
},
{
"language": "ocaml",
"status": "Passed",
"queued_duration": 176.144725,
"started_at": "2026-01-23T09:31:26Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28959,
"duration_seconds": 68
},
{
"language": "python",
"status": "Passed",
"queued_duration": 9.930546,
"started_at": "2026-01-23T09:28:35Z",
"updated_at": "2026-01-23T09:29:33Z",
"job_id": 28922,
"duration_seconds": 58
},
{
"language": "prolog",
"status": "Passed",
"queued_duration": 211.062236,
"started_at": "2026-01-23T09:32:02Z",
"updated_at": "2026-01-23T09:32:58Z",
"job_id": 28963,
"duration_seconds": 56
},
{
"language": "fsharp",
"status": "Passed",
"queued_duration": 189.174642,
"started_at": "2026-01-23T09:31:40Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28960,
"duration_seconds": 54
},
{
"language": "csharp",
"status": "Passed",
"queued_duration": 189.657657,
"started_at": "2026-01-23T09:31:40Z",
"updated_at": "2026-01-23T09:32:34Z",
"job_id": 28961,
"duration_seconds": 54
},
{
"language": "cobol",
"status": "Passed",
"queued_duration": 163.776836,
"started_at": "2026-01-23T09:31:12Z",
"updated_at": "2026-01-23T09:32:02Z",
"job_id": 28949,
"duration_seconds": 50
},
{
"language": "kotlin",
"status": "Passed",
"queued_duration": 162.026219,
"started_at": "2026-01-23T09:31:10Z",
"updated_at": "2026-01-23T09:31:59Z",
"job_id": 28948,
"duration_seconds": 49
},
{
"language": "clojure",
"status": "Passed",
"queued_duration": 43.362958,
"started_at": "2026-01-23T09:29:10Z",
"updated_at": "2026-01-23T09:29:58Z",
"job_id": 28936,
"duration_seconds": 48
},
{
"language": "groovy",
"status": "Passed",
"queued_duration": 78.782333,
"started_at": "2026-01-23T09:32:31Z",
"updated_at": "2026-01-23T09:33:07Z",
"job_id": 28965,
"duration_seconds": 36
},
{
"language": "java",
"status": "Passed",
"queued_duration": 158.97789,
"started_at": "2026-01-23T09:31:07Z",
"updated_at": "2026-01-23T09:31:40Z",
"job_id": 28947,
"duration_seconds": 33
},
{
"language": "fortran",
"status": "Passed",
"queued_duration": 164.678881,
"started_at": "2026-01-23T09:31:13Z",
"updated_at": "2026-01-23T09:31:40Z",
"job_id": 28950,
"duration_seconds": 27
},
{
"language": "commonlisp",
"status": "Passed",
"queued_duration": 65.457563,
"started_at": "2026-01-23T09:29:32Z",
"updated_at": "2026-01-23T09:29:59Z",
"job_id": 28937,
"duration_seconds": 27
},
{
"language": "deno",
"status": "Passed",
"queued_duration": 69.40559,
"started_at": "2026-01-23T09:29:35Z",
"updated_at": "2026-01-23T09:29:59Z",
"job_id": 28940,
"duration_seconds": 24
},
{
"language": "awk",
"status": "Passed",
"queued_duration": 69.948223,
"started_at": "2026-01-23T09:29:35Z",
"updated_at": "2026-01-23T09:29:59Z",
"job_id": 28941,
"duration_seconds": 24
},
{
"language": "dotnet",
"status": "Passed",
"queued_duration": 208.259106,
"started_at": "2026-01-23T09:31:59Z",
"updated_at": "2026-01-23T09:32:04Z",
"job_id": 28962,
"duration_seconds": 5
}
]
}

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

@ -0,0 +1,146 @@
# Performance Report: 4.2.7
**Generated:** 2026-01-23T09:36:18Z
**Pipeline:** [#12043](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/12043)
## Summary
| Metric | Value |
|--------|-------|
| Total Tests | 631 |
| Passed | 630 |
| Failed | 0 |
| Pass Rate | 99.8% |
| Languages | 43 |
| Avg Duration | 117s |
| Slowest | typescript (319s) |
| Fastest | dotnet (5s) |
---
## 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:**
- **TYPESCRIPT** and **RUBY** are outliers at 90+ seconds
- Most languages cluster between 20-40 seconds
- Compiled languages (red) tend to be faster than interpreted (blue)
- **DOTNET** is the fastest at 5 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 (typescript, ruby)
---
## Speed Leaders
Side-by-side comparison of the 10 slowest and 10 fastest languages.
![Speed Leaders](chart-speed-leaders.png)
**Slowest (left):** TYPESCRIPT, RUBY, R, ELIXIR, CRYSTAL
**Fastest (right):** DOTNET, AWK, DENO, COMMONLISP, FORTRAN
---
## 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 - typescript and ruby 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 |
|----------|--------|----------|
| typescript | Passed | 319s |
| ruby | Passed | 318s |
| r | Passed | 313s |
| elixir | Passed | 313s |
| crystal | Passed | 260s |
| php | Passed | 235s |
| bash | Passed | 233s |
| julia | Passed | 226s |
| objc | Passed | 223s |
| perl | Passed | 155s |
| javascript | Passed | 155s |
| lua | Passed | 152s |
| tcl | Passed | 148s |
| erlang | Passed | 148s |
| scheme | Passed | 146s |
| powershell | Passed | 141s |
| dart | Passed | 110s |
| raku | Passed | 92s |
| go | Passed | 86s |
| zig | Passed | 79s |
| d | Passed | 78s |
| nim | Passed | 77s |
| v | Passed | 76s |
| haskell | Passed | 76s |
| cpp | Passed | 75s |
| c | Passed | 72s |
| forth | Passed | 71s |
| rust | Passed | 69s |
| ocaml | Passed | 68s |
| python | Passed | 58s |
| prolog | Passed | 56s |
| fsharp | Passed | 54s |
| csharp | Passed | 54s |
| cobol | Passed | 50s |
| kotlin | Passed | 49s |
| clojure | Passed | 48s |
| groovy | Passed | 36s |
| java | Passed | 33s |
| fortran | Passed | 27s |
| commonlisp | Passed | 27s |
| deno | Passed | 24s |
| awk | Passed | 24s |
| dotnet | Passed | 5s |
---
*Report generated by UN Inception CI pipeline*

View file

@ -11,3 +11,4 @@ Tracking compile and test execution times across releases.
| 4.2.4 | 2026-01-19 | 682 | 100.0% | 70s | python | c |
| 4.2.5 | 2026-01-19 | 658 | 100.0% | 67s | v | erlang |
| 4.2.6 | 2026-01-19 | 642 | 100.0% | 54s | haskell | awk |
| 4.2.7 | 2026-01-23 | 631 | 99.8% | 117s | typescript | dotnet |