perf - Add performance report for 4.2.11 [ci skip]
This commit is contained in:
parent
06cd70d1ed
commit
03969b43b5
9 changed files with 554 additions and 0 deletions
BIN
reports/4.2.11/chart-category-comparison.png
Normal file
BIN
reports/4.2.11/chart-category-comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
reports/4.2.11/chart-dashboard.png
Normal file
BIN
reports/4.2.11/chart-dashboard.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 141 KiB |
BIN
reports/4.2.11/chart-duration-by-language.png
Normal file
BIN
reports/4.2.11/chart-duration-by-language.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 161 KiB |
BIN
reports/4.2.11/chart-duration-histogram.png
Normal file
BIN
reports/4.2.11/chart-duration-histogram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
BIN
reports/4.2.11/chart-queue-vs-execution.png
Normal file
BIN
reports/4.2.11/chart-queue-vs-execution.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 104 KiB |
BIN
reports/4.2.11/chart-speed-leaders.png
Normal file
BIN
reports/4.2.11/chart-speed-leaders.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
407
reports/4.2.11/perf.json
Normal file
407
reports/4.2.11/perf.json
Normal file
|
|
@ -0,0 +1,407 @@
|
|||
{
|
||||
"tag": "4.2.11",
|
||||
"generated_at": "2026-01-23T12:14:08Z",
|
||||
"parent_pipeline_id": 12102,
|
||||
"child_pipeline_id": 12103,
|
||||
"summary": {
|
||||
"total_tests": 669,
|
||||
"passed_tests": 669,
|
||||
"failed_tests": 0,
|
||||
"total_languages": 43,
|
||||
"passed_languages": 43,
|
||||
"avg_duration_seconds": 103,
|
||||
"max_duration_seconds": 289,
|
||||
"min_duration_seconds": 43,
|
||||
"slowest_language": "deno",
|
||||
"fastest_language": "cpp"
|
||||
},
|
||||
"languages": [
|
||||
{
|
||||
"language": "deno",
|
||||
"status": "Passed",
|
||||
"queued_duration": 17.662456,
|
||||
"started_at": "2026-01-23T12:08:11Z",
|
||||
"updated_at": "2026-01-23T12:13:00Z",
|
||||
"job_id": 29314,
|
||||
"duration_seconds": 289
|
||||
},
|
||||
{
|
||||
"language": "awk",
|
||||
"status": "Passed",
|
||||
"queued_duration": 18.560584,
|
||||
"started_at": "2026-01-23T12:08:12Z",
|
||||
"updated_at": "2026-01-23T12:12:54Z",
|
||||
"job_id": 29315,
|
||||
"duration_seconds": 282
|
||||
},
|
||||
{
|
||||
"language": "erlang",
|
||||
"status": "Passed",
|
||||
"queued_duration": 9.880672,
|
||||
"started_at": "2026-01-23T12:08:04Z",
|
||||
"updated_at": "2026-01-23T12:11:59Z",
|
||||
"job_id": 29306,
|
||||
"duration_seconds": 235
|
||||
},
|
||||
{
|
||||
"language": "elixir",
|
||||
"status": "Passed",
|
||||
"queued_duration": 9.190586,
|
||||
"started_at": "2026-01-23T12:08:03Z",
|
||||
"updated_at": "2026-01-23T12:11:51Z",
|
||||
"job_id": 29305,
|
||||
"duration_seconds": 228
|
||||
},
|
||||
{
|
||||
"language": "clojure",
|
||||
"status": "Passed",
|
||||
"queued_duration": 12.532029,
|
||||
"started_at": "2026-01-23T12:08:07Z",
|
||||
"updated_at": "2026-01-23T12:11:52Z",
|
||||
"job_id": 29310,
|
||||
"duration_seconds": 225
|
||||
},
|
||||
{
|
||||
"language": "go",
|
||||
"status": "Passed",
|
||||
"queued_duration": 62.521832,
|
||||
"started_at": "2026-01-23T12:08:58Z",
|
||||
"updated_at": "2026-01-23T12:11:55Z",
|
||||
"job_id": 29319,
|
||||
"duration_seconds": 177
|
||||
},
|
||||
{
|
||||
"language": "powershell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 11.703195,
|
||||
"started_at": "2026-01-23T12:08:06Z",
|
||||
"updated_at": "2026-01-23T12:11:01Z",
|
||||
"job_id": 29309,
|
||||
"duration_seconds": 175
|
||||
},
|
||||
{
|
||||
"language": "raku",
|
||||
"status": "Passed",
|
||||
"queued_duration": 60.432429,
|
||||
"started_at": "2026-01-23T12:08:56Z",
|
||||
"updated_at": "2026-01-23T12:11:50Z",
|
||||
"job_id": 29316,
|
||||
"duration_seconds": 174
|
||||
},
|
||||
{
|
||||
"language": "c",
|
||||
"status": "Passed",
|
||||
"queued_duration": 61.456915,
|
||||
"started_at": "2026-01-23T12:08:57Z",
|
||||
"updated_at": "2026-01-23T12:11:51Z",
|
||||
"job_id": 29317,
|
||||
"duration_seconds": 174
|
||||
},
|
||||
{
|
||||
"language": "java",
|
||||
"status": "Passed",
|
||||
"queued_duration": 66.222182,
|
||||
"started_at": "2026-01-23T12:09:02Z",
|
||||
"updated_at": "2026-01-23T12:11:15Z",
|
||||
"job_id": 29321,
|
||||
"duration_seconds": 133
|
||||
},
|
||||
{
|
||||
"language": "kotlin",
|
||||
"status": "Passed",
|
||||
"queued_duration": 67.778951,
|
||||
"started_at": "2026-01-23T12:09:03Z",
|
||||
"updated_at": "2026-01-23T12:11:01Z",
|
||||
"job_id": 29322,
|
||||
"duration_seconds": 118
|
||||
},
|
||||
{
|
||||
"language": "rust",
|
||||
"status": "Passed",
|
||||
"queued_duration": 63.052216,
|
||||
"started_at": "2026-01-23T12:08:58Z",
|
||||
"updated_at": "2026-01-23T12:10:53Z",
|
||||
"job_id": 29320,
|
||||
"duration_seconds": 115
|
||||
},
|
||||
{
|
||||
"language": "php",
|
||||
"status": "Passed",
|
||||
"queued_duration": 5.986462,
|
||||
"started_at": "2026-01-23T12:08:00Z",
|
||||
"updated_at": "2026-01-23T12:09:48Z",
|
||||
"job_id": 29301,
|
||||
"duration_seconds": 108
|
||||
},
|
||||
{
|
||||
"language": "tcl",
|
||||
"status": "Passed",
|
||||
"queued_duration": 10.570755,
|
||||
"started_at": "2026-01-23T12:08:05Z",
|
||||
"updated_at": "2026-01-23T12:09:45Z",
|
||||
"job_id": 29307,
|
||||
"duration_seconds": 100
|
||||
},
|
||||
{
|
||||
"language": "r",
|
||||
"status": "Passed",
|
||||
"queued_duration": 8.617305,
|
||||
"started_at": "2026-01-23T12:08:03Z",
|
||||
"updated_at": "2026-01-23T12:09:38Z",
|
||||
"job_id": 29304,
|
||||
"duration_seconds": 95
|
||||
},
|
||||
{
|
||||
"language": "scheme",
|
||||
"status": "Passed",
|
||||
"queued_duration": 11.285147,
|
||||
"started_at": "2026-01-23T12:08:06Z",
|
||||
"updated_at": "2026-01-23T12:09:38Z",
|
||||
"job_id": 29308,
|
||||
"duration_seconds": 92
|
||||
},
|
||||
{
|
||||
"language": "commonlisp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.91287,
|
||||
"started_at": "2026-01-23T12:08:09Z",
|
||||
"updated_at": "2026-01-23T12:09:40Z",
|
||||
"job_id": 29311,
|
||||
"duration_seconds": 91
|
||||
},
|
||||
{
|
||||
"language": "groovy",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.130091,
|
||||
"started_at": "2026-01-23T12:08:10Z",
|
||||
"updated_at": "2026-01-23T12:09:40Z",
|
||||
"job_id": 29313,
|
||||
"duration_seconds": 90
|
||||
},
|
||||
{
|
||||
"language": "crystal",
|
||||
"status": "Passed",
|
||||
"queued_duration": 14.653298,
|
||||
"started_at": "2026-01-23T12:08:10Z",
|
||||
"updated_at": "2026-01-23T12:09:40Z",
|
||||
"job_id": 29312,
|
||||
"duration_seconds": 90
|
||||
},
|
||||
{
|
||||
"language": "cobol",
|
||||
"status": "Passed",
|
||||
"queued_duration": 102.387643,
|
||||
"started_at": "2026-01-23T12:09:38Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29323,
|
||||
"duration_seconds": 72
|
||||
},
|
||||
{
|
||||
"language": "fortran",
|
||||
"status": "Passed",
|
||||
"queued_duration": 104.389928,
|
||||
"started_at": "2026-01-23T12:09:40Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29324,
|
||||
"duration_seconds": 70
|
||||
},
|
||||
{
|
||||
"language": "d",
|
||||
"status": "Passed",
|
||||
"queued_duration": 104.961934,
|
||||
"started_at": "2026-01-23T12:09:41Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29325,
|
||||
"duration_seconds": 69
|
||||
},
|
||||
{
|
||||
"language": "zig",
|
||||
"status": "Passed",
|
||||
"queued_duration": 105.443653,
|
||||
"started_at": "2026-01-23T12:09:42Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29326,
|
||||
"duration_seconds": 68
|
||||
},
|
||||
{
|
||||
"language": "nim",
|
||||
"status": "Passed",
|
||||
"queued_duration": 105.939374,
|
||||
"started_at": "2026-01-23T12:09:42Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29327,
|
||||
"duration_seconds": 68
|
||||
},
|
||||
{
|
||||
"language": "v",
|
||||
"status": "Passed",
|
||||
"queued_duration": 106.417114,
|
||||
"started_at": "2026-01-23T12:09:43Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29328,
|
||||
"duration_seconds": 67
|
||||
},
|
||||
{
|
||||
"language": "python",
|
||||
"status": "Passed",
|
||||
"queued_duration": 3.116476,
|
||||
"started_at": "2026-01-23T12:07:56Z",
|
||||
"updated_at": "2026-01-23T12:09:03Z",
|
||||
"job_id": 29296,
|
||||
"duration_seconds": 67
|
||||
},
|
||||
{
|
||||
"language": "objc",
|
||||
"status": "Passed",
|
||||
"queued_duration": 108.222917,
|
||||
"started_at": "2026-01-23T12:09:45Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29329,
|
||||
"duration_seconds": 65
|
||||
},
|
||||
{
|
||||
"language": "dart",
|
||||
"status": "Passed",
|
||||
"queued_duration": 111.801726,
|
||||
"started_at": "2026-01-23T12:09:48Z",
|
||||
"updated_at": "2026-01-23T12:10:50Z",
|
||||
"job_id": 29330,
|
||||
"duration_seconds": 62
|
||||
},
|
||||
{
|
||||
"language": "prolog",
|
||||
"status": "Passed",
|
||||
"queued_duration": 176.999725,
|
||||
"started_at": "2026-01-23T12:10:54Z",
|
||||
"updated_at": "2026-01-23T12:11:55Z",
|
||||
"job_id": 29337,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "julia",
|
||||
"status": "Passed",
|
||||
"queued_duration": 173.01779,
|
||||
"started_at": "2026-01-23T12:10:50Z",
|
||||
"updated_at": "2026-01-23T12:11:51Z",
|
||||
"job_id": 29331,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "haskell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 173.763989,
|
||||
"started_at": "2026-01-23T12:10:51Z",
|
||||
"updated_at": "2026-01-23T12:11:52Z",
|
||||
"job_id": 29332,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "ocaml",
|
||||
"status": "Passed",
|
||||
"queued_duration": 174.317218,
|
||||
"started_at": "2026-01-23T12:10:51Z",
|
||||
"updated_at": "2026-01-23T12:11:51Z",
|
||||
"job_id": 29333,
|
||||
"duration_seconds": 60
|
||||
},
|
||||
{
|
||||
"language": "javascript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 3.581142,
|
||||
"started_at": "2026-01-23T12:07:57Z",
|
||||
"updated_at": "2026-01-23T12:08:57Z",
|
||||
"job_id": 29297,
|
||||
"duration_seconds": 60
|
||||
},
|
||||
{
|
||||
"language": "fsharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 175.458617,
|
||||
"started_at": "2026-01-23T12:10:52Z",
|
||||
"updated_at": "2026-01-23T12:11:51Z",
|
||||
"job_id": 29334,
|
||||
"duration_seconds": 59
|
||||
},
|
||||
{
|
||||
"language": "dotnet",
|
||||
"status": "Passed",
|
||||
"queued_duration": 176.490205,
|
||||
"started_at": "2026-01-23T12:10:53Z",
|
||||
"updated_at": "2026-01-23T12:11:52Z",
|
||||
"job_id": 29336,
|
||||
"duration_seconds": 59
|
||||
},
|
||||
{
|
||||
"language": "csharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 176.236646,
|
||||
"started_at": "2026-01-23T12:10:53Z",
|
||||
"updated_at": "2026-01-23T12:11:52Z",
|
||||
"job_id": 29335,
|
||||
"duration_seconds": 59
|
||||
},
|
||||
{
|
||||
"language": "typescript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 4.17156,
|
||||
"started_at": "2026-01-23T12:07:58Z",
|
||||
"updated_at": "2026-01-23T12:08:56Z",
|
||||
"job_id": 29298,
|
||||
"duration_seconds": 58
|
||||
},
|
||||
{
|
||||
"language": "ruby",
|
||||
"status": "Passed",
|
||||
"queued_duration": 4.740214,
|
||||
"started_at": "2026-01-23T12:07:58Z",
|
||||
"updated_at": "2026-01-23T12:08:56Z",
|
||||
"job_id": 29299,
|
||||
"duration_seconds": 58
|
||||
},
|
||||
{
|
||||
"language": "perl",
|
||||
"status": "Passed",
|
||||
"queued_duration": 5.953099,
|
||||
"started_at": "2026-01-23T12:07:59Z",
|
||||
"updated_at": "2026-01-23T12:08:57Z",
|
||||
"job_id": 29300,
|
||||
"duration_seconds": 58
|
||||
},
|
||||
{
|
||||
"language": "bash",
|
||||
"status": "Passed",
|
||||
"queued_duration": 7.832408,
|
||||
"started_at": "2026-01-23T12:08:02Z",
|
||||
"updated_at": "2026-01-23T12:09:00Z",
|
||||
"job_id": 29303,
|
||||
"duration_seconds": 58
|
||||
},
|
||||
{
|
||||
"language": "lua",
|
||||
"status": "Passed",
|
||||
"queued_duration": 6.953438,
|
||||
"started_at": "2026-01-23T12:08:01Z",
|
||||
"updated_at": "2026-01-23T12:08:57Z",
|
||||
"job_id": 29302,
|
||||
"duration_seconds": 56
|
||||
},
|
||||
{
|
||||
"language": "forth",
|
||||
"status": "Passed",
|
||||
"queued_duration": 177.426046,
|
||||
"started_at": "2026-01-23T12:10:55Z",
|
||||
"updated_at": "2026-01-23T12:11:48Z",
|
||||
"job_id": 29338,
|
||||
"duration_seconds": 53
|
||||
},
|
||||
{
|
||||
"language": "cpp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 61.978594,
|
||||
"started_at": "2026-01-23T12:08:57Z",
|
||||
"updated_at": "2026-01-23T12:09:40Z",
|
||||
"job_id": 29318,
|
||||
"duration_seconds": 43
|
||||
}
|
||||
]
|
||||
}
|
||||
146
reports/4.2.11/perf.md
Normal file
146
reports/4.2.11/perf.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# Performance Report: 4.2.11
|
||||
|
||||
**Generated:** 2026-01-23T12:14:08Z
|
||||
**Pipeline:** [#12103](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/12103)
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Tests | 669 |
|
||||
| Passed | 669 |
|
||||
| Failed | 0 |
|
||||
| Pass Rate | 100.0% |
|
||||
| Languages | 43 |
|
||||
| Avg Duration | 103s |
|
||||
| Slowest | deno (289s) |
|
||||
| Fastest | cpp (43s) |
|
||||
|
||||
---
|
||||
|
||||
## Test Duration by Language
|
||||
|
||||
The primary performance metric - how long each language takes to run its full test suite (15 tests per language).
|
||||
|
||||

|
||||
|
||||
**Key observations:**
|
||||
- **DENO** and **AWK** are outliers at 90+ seconds
|
||||
- Most languages cluster between 20-40 seconds
|
||||
- Compiled languages (red) tend to be faster than interpreted (blue)
|
||||
- **CPP** is the fastest at 43 seconds
|
||||
|
||||
---
|
||||
|
||||
## Compiled vs Interpreted
|
||||
|
||||
Comparing performance between compiled languages (C, Go, Rust, etc.) and interpreted languages (Python, Ruby, JavaScript, etc.).
|
||||
|
||||

|
||||
|
||||
**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.
|
||||
|
||||

|
||||
|
||||
**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 (deno, awk)
|
||||
|
||||
---
|
||||
|
||||
## Speed Leaders
|
||||
|
||||
Side-by-side comparison of the 10 slowest and 10 fastest languages.
|
||||
|
||||

|
||||
|
||||
**Slowest (left):** DENO, AWK, ERLANG, ELIXIR, CLOJURE
|
||||
**Fastest (right):** CPP, FORTH, LUA, BASH, PERL
|
||||
|
||||
---
|
||||
|
||||
## Queue vs Execution Time
|
||||
|
||||
Scatter plot showing the relationship between CI queue wait time and actual test execution time.
|
||||
|
||||

|
||||
|
||||
**Notes:**
|
||||
- Queue time is how long the job waited for a runner
|
||||
- Most jobs had similar queue times (clustered vertically)
|
||||
- Outliers labeled - deno and awk took longest to execute regardless of queue time
|
||||
|
||||
---
|
||||
|
||||
## Dashboard
|
||||
|
||||
Summary dashboard combining key metrics and visualizations.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Raw Data
|
||||
|
||||
### Per-Language Performance
|
||||
|
||||
| Language | Status | Duration |
|
||||
|----------|--------|----------|
|
||||
| deno | Passed | 289s |
|
||||
| awk | Passed | 282s |
|
||||
| erlang | Passed | 235s |
|
||||
| elixir | Passed | 228s |
|
||||
| clojure | Passed | 225s |
|
||||
| go | Passed | 177s |
|
||||
| powershell | Passed | 175s |
|
||||
| raku | Passed | 174s |
|
||||
| c | Passed | 174s |
|
||||
| java | Passed | 133s |
|
||||
| kotlin | Passed | 118s |
|
||||
| rust | Passed | 115s |
|
||||
| php | Passed | 108s |
|
||||
| tcl | Passed | 100s |
|
||||
| r | Passed | 95s |
|
||||
| scheme | Passed | 92s |
|
||||
| commonlisp | Passed | 91s |
|
||||
| groovy | Passed | 90s |
|
||||
| crystal | Passed | 90s |
|
||||
| cobol | Passed | 72s |
|
||||
| fortran | Passed | 70s |
|
||||
| d | Passed | 69s |
|
||||
| zig | Passed | 68s |
|
||||
| nim | Passed | 68s |
|
||||
| v | Passed | 67s |
|
||||
| python | Passed | 67s |
|
||||
| objc | Passed | 65s |
|
||||
| dart | Passed | 62s |
|
||||
| prolog | Passed | 61s |
|
||||
| julia | Passed | 61s |
|
||||
| haskell | Passed | 61s |
|
||||
| ocaml | Passed | 60s |
|
||||
| javascript | Passed | 60s |
|
||||
| fsharp | Passed | 59s |
|
||||
| dotnet | Passed | 59s |
|
||||
| csharp | Passed | 59s |
|
||||
| typescript | Passed | 58s |
|
||||
| ruby | Passed | 58s |
|
||||
| perl | Passed | 58s |
|
||||
| bash | Passed | 58s |
|
||||
| lua | Passed | 56s |
|
||||
| forth | Passed | 53s |
|
||||
| cpp | Passed | 43s |
|
||||
|
||||
---
|
||||
|
||||
*Report generated by UN Inception CI pipeline*
|
||||
|
|
@ -15,3 +15,4 @@ Tracking compile and test execution times across releases.
|
|||
| 4.2.8 | 2026-01-23 | 645 | 99.8% | 111s | kotlin | fortran |
|
||||
| 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 |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue