perf - Add performance report for 4.2.10 [ci skip]
This commit is contained in:
parent
3b843c5099
commit
988aa721b6
9 changed files with 554 additions and 0 deletions
BIN
reports/4.2.10/chart-category-comparison.png
Normal file
BIN
reports/4.2.10/chart-category-comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
reports/4.2.10/chart-dashboard.png
Normal file
BIN
reports/4.2.10/chart-dashboard.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
reports/4.2.10/chart-duration-by-language.png
Normal file
BIN
reports/4.2.10/chart-duration-by-language.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
BIN
reports/4.2.10/chart-duration-histogram.png
Normal file
BIN
reports/4.2.10/chart-duration-histogram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
BIN
reports/4.2.10/chart-queue-vs-execution.png
Normal file
BIN
reports/4.2.10/chart-queue-vs-execution.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
BIN
reports/4.2.10/chart-speed-leaders.png
Normal file
BIN
reports/4.2.10/chart-speed-leaders.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
407
reports/4.2.10/perf.json
Normal file
407
reports/4.2.10/perf.json
Normal file
|
|
@ -0,0 +1,407 @@
|
|||
{
|
||||
"tag": "4.2.10",
|
||||
"generated_at": "2026-01-23T11:46:18Z",
|
||||
"parent_pipeline_id": 12087,
|
||||
"child_pipeline_id": 12089,
|
||||
"summary": {
|
||||
"total_tests": 673,
|
||||
"passed_tests": 671,
|
||||
"failed_tests": 2,
|
||||
"total_languages": 43,
|
||||
"passed_languages": 41,
|
||||
"avg_duration_seconds": 153,
|
||||
"max_duration_seconds": 320,
|
||||
"min_duration_seconds": 29,
|
||||
"slowest_language": "scheme",
|
||||
"fastest_language": "bash"
|
||||
},
|
||||
"languages": [
|
||||
{
|
||||
"language": "scheme",
|
||||
"status": "Passed",
|
||||
"queued_duration": 28.58417,
|
||||
"started_at": "2026-01-23T11:37:08Z",
|
||||
"updated_at": "2026-01-23T11:42:28Z",
|
||||
"job_id": 29224,
|
||||
"duration_seconds": 320
|
||||
},
|
||||
{
|
||||
"language": "clojure",
|
||||
"status": "Passed",
|
||||
"queued_duration": 34.414171,
|
||||
"started_at": "2026-01-23T11:37:18Z",
|
||||
"updated_at": "2026-01-23T11:42:28Z",
|
||||
"job_id": 29226,
|
||||
"duration_seconds": 310
|
||||
},
|
||||
{
|
||||
"language": "deno",
|
||||
"status": "Passed",
|
||||
"queued_duration": 66.958449,
|
||||
"started_at": "2026-01-23T11:37:46Z",
|
||||
"updated_at": "2026-01-23T11:42:27Z",
|
||||
"job_id": 29230,
|
||||
"duration_seconds": 281
|
||||
},
|
||||
{
|
||||
"language": "c",
|
||||
"status": "Passed",
|
||||
"queued_duration": 68.027219,
|
||||
"started_at": "2026-01-23T11:37:52Z",
|
||||
"updated_at": "2026-01-23T11:42:28Z",
|
||||
"job_id": 29233,
|
||||
"duration_seconds": 276
|
||||
},
|
||||
{
|
||||
"language": "julia",
|
||||
"status": "Passed",
|
||||
"queued_duration": 190.117564,
|
||||
"started_at": "2026-01-23T11:39:59Z",
|
||||
"updated_at": "2026-01-23T11:44:30Z",
|
||||
"job_id": 29247,
|
||||
"duration_seconds": 271
|
||||
},
|
||||
{
|
||||
"language": "prolog",
|
||||
"status": "Passed",
|
||||
"queued_duration": 197.409533,
|
||||
"started_at": "2026-01-23T11:40:07Z",
|
||||
"updated_at": "2026-01-23T11:44:29Z",
|
||||
"job_id": 29253,
|
||||
"duration_seconds": 262
|
||||
},
|
||||
{
|
||||
"language": "raku",
|
||||
"status": "Passed",
|
||||
"queued_duration": 63.340398,
|
||||
"started_at": "2026-01-23T11:37:47Z",
|
||||
"updated_at": "2026-01-23T11:41:56Z",
|
||||
"job_id": 29232,
|
||||
"duration_seconds": 249
|
||||
},
|
||||
{
|
||||
"language": "awk",
|
||||
"status": "Passed",
|
||||
"queued_duration": 67.324427,
|
||||
"started_at": "2026-01-23T11:37:47Z",
|
||||
"updated_at": "2026-01-23T11:41:54Z",
|
||||
"job_id": 29231,
|
||||
"duration_seconds": 247
|
||||
},
|
||||
{
|
||||
"language": "cpp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 68.740442,
|
||||
"started_at": "2026-01-23T11:37:53Z",
|
||||
"updated_at": "2026-01-23T11:41:55Z",
|
||||
"job_id": 29234,
|
||||
"duration_seconds": 242
|
||||
},
|
||||
{
|
||||
"language": "ocaml",
|
||||
"status": "Passed",
|
||||
"queued_duration": 191.187496,
|
||||
"started_at": "2026-01-23T11:40:00Z",
|
||||
"updated_at": "2026-01-23T11:44:00Z",
|
||||
"job_id": 29249,
|
||||
"duration_seconds": 240
|
||||
},
|
||||
{
|
||||
"language": "kotlin",
|
||||
"status": "Passed",
|
||||
"queued_duration": 72.988731,
|
||||
"started_at": "2026-01-23T11:37:58Z",
|
||||
"updated_at": "2026-01-23T11:41:58Z",
|
||||
"job_id": 29238,
|
||||
"duration_seconds": 240
|
||||
},
|
||||
{
|
||||
"language": "csharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 195.576495,
|
||||
"started_at": "2026-01-23T11:40:05Z",
|
||||
"updated_at": "2026-01-23T11:44:00Z",
|
||||
"job_id": 29251,
|
||||
"duration_seconds": 235
|
||||
},
|
||||
{
|
||||
"language": "haskell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 190.562352,
|
||||
"started_at": "2026-01-23T11:40:00Z",
|
||||
"updated_at": "2026-01-23T11:43:34Z",
|
||||
"job_id": 29248,
|
||||
"duration_seconds": 214
|
||||
},
|
||||
{
|
||||
"language": "forth",
|
||||
"status": "Passed",
|
||||
"queued_duration": 198.559254,
|
||||
"started_at": "2026-01-23T11:40:08Z",
|
||||
"updated_at": "2026-01-23T11:43:35Z",
|
||||
"job_id": 29254,
|
||||
"duration_seconds": 207
|
||||
},
|
||||
{
|
||||
"language": "tcl",
|
||||
"status": "Failed",
|
||||
"queued_duration": 178.780298,
|
||||
"started_at": "2026-01-23T11:40:50Z",
|
||||
"updated_at": "2026-01-23T11:44:08Z",
|
||||
"job_id": 29257,
|
||||
"duration_seconds": 198
|
||||
},
|
||||
{
|
||||
"language": "zig",
|
||||
"status": "Passed",
|
||||
"queued_duration": 118.38835,
|
||||
"started_at": "2026-01-23T11:38:46Z",
|
||||
"updated_at": "2026-01-23T11:41:51Z",
|
||||
"job_id": 29242,
|
||||
"duration_seconds": 185
|
||||
},
|
||||
{
|
||||
"language": "r",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.31373,
|
||||
"started_at": "2026-01-23T11:36:57Z",
|
||||
"updated_at": "2026-01-23T11:39:58Z",
|
||||
"job_id": 29220,
|
||||
"duration_seconds": 181
|
||||
},
|
||||
{
|
||||
"language": "rust",
|
||||
"status": "Passed",
|
||||
"queued_duration": 70.017294,
|
||||
"started_at": "2026-01-23T11:37:54Z",
|
||||
"updated_at": "2026-01-23T11:40:50Z",
|
||||
"job_id": 29236,
|
||||
"duration_seconds": 176
|
||||
},
|
||||
{
|
||||
"language": "commonlisp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 34.946612,
|
||||
"started_at": "2026-01-23T11:37:18Z",
|
||||
"updated_at": "2026-01-23T11:40:07Z",
|
||||
"job_id": 29227,
|
||||
"duration_seconds": 169
|
||||
},
|
||||
{
|
||||
"language": "go",
|
||||
"status": "Passed",
|
||||
"queued_duration": 142.012079,
|
||||
"started_at": "2026-01-23T11:42:26Z",
|
||||
"updated_at": "2026-01-23T11:45:07Z",
|
||||
"job_id": 29266,
|
||||
"duration_seconds": 161
|
||||
},
|
||||
{
|
||||
"language": "groovy",
|
||||
"status": "Failed",
|
||||
"queued_duration": 142.680835,
|
||||
"started_at": "2026-01-23T11:42:29Z",
|
||||
"updated_at": "2026-01-23T11:45:00Z",
|
||||
"job_id": 29267,
|
||||
"duration_seconds": 151
|
||||
},
|
||||
{
|
||||
"language": "dart",
|
||||
"status": "Passed",
|
||||
"queued_duration": 188.766843,
|
||||
"started_at": "2026-01-23T11:39:58Z",
|
||||
"updated_at": "2026-01-23T11:42:27Z",
|
||||
"job_id": 29246,
|
||||
"duration_seconds": 149
|
||||
},
|
||||
{
|
||||
"language": "fsharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 191.722636,
|
||||
"started_at": "2026-01-23T11:40:01Z",
|
||||
"updated_at": "2026-01-23T11:42:29Z",
|
||||
"job_id": 29250,
|
||||
"duration_seconds": 148
|
||||
},
|
||||
{
|
||||
"language": "java",
|
||||
"status": "Passed",
|
||||
"queued_duration": 70.455059,
|
||||
"started_at": "2026-01-23T11:37:55Z",
|
||||
"updated_at": "2026-01-23T11:39:57Z",
|
||||
"job_id": 29237,
|
||||
"duration_seconds": 122
|
||||
},
|
||||
{
|
||||
"language": "php",
|
||||
"status": "Passed",
|
||||
"queued_duration": 12.837967,
|
||||
"started_at": "2026-01-23T11:36:54Z",
|
||||
"updated_at": "2026-01-23T11:38:51Z",
|
||||
"job_id": 29217,
|
||||
"duration_seconds": 117
|
||||
},
|
||||
{
|
||||
"language": "dotnet",
|
||||
"status": "Passed",
|
||||
"queued_duration": 196.557205,
|
||||
"started_at": "2026-01-23T11:40:06Z",
|
||||
"updated_at": "2026-01-23T11:41:58Z",
|
||||
"job_id": 29252,
|
||||
"duration_seconds": 112
|
||||
},
|
||||
{
|
||||
"language": "javascript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 10.74858,
|
||||
"started_at": "2026-01-23T11:36:51Z",
|
||||
"updated_at": "2026-01-23T11:38:38Z",
|
||||
"job_id": 29213,
|
||||
"duration_seconds": 107
|
||||
},
|
||||
{
|
||||
"language": "perl",
|
||||
"status": "Passed",
|
||||
"queued_duration": 200.97553,
|
||||
"started_at": "2026-01-23T11:41:59Z",
|
||||
"updated_at": "2026-01-23T11:43:44Z",
|
||||
"job_id": 29263,
|
||||
"duration_seconds": 105
|
||||
},
|
||||
{
|
||||
"language": "elixir",
|
||||
"status": "Passed",
|
||||
"queued_duration": 16.128221,
|
||||
"started_at": "2026-01-23T11:36:59Z",
|
||||
"updated_at": "2026-01-23T11:38:37Z",
|
||||
"job_id": 29221,
|
||||
"duration_seconds": 98
|
||||
},
|
||||
{
|
||||
"language": "crystal",
|
||||
"status": "Passed",
|
||||
"queued_duration": 35.373324,
|
||||
"started_at": "2026-01-23T11:37:19Z",
|
||||
"updated_at": "2026-01-23T11:38:48Z",
|
||||
"job_id": 29228,
|
||||
"duration_seconds": 89
|
||||
},
|
||||
{
|
||||
"language": "objc",
|
||||
"status": "Passed",
|
||||
"queued_duration": 126.054011,
|
||||
"started_at": "2026-01-23T11:38:55Z",
|
||||
"updated_at": "2026-01-23T11:40:18Z",
|
||||
"job_id": 29245,
|
||||
"duration_seconds": 83
|
||||
},
|
||||
{
|
||||
"language": "cobol",
|
||||
"status": "Passed",
|
||||
"queued_duration": 111.662513,
|
||||
"started_at": "2026-01-23T11:38:37Z",
|
||||
"updated_at": "2026-01-23T11:39:59Z",
|
||||
"job_id": 29239,
|
||||
"duration_seconds": 82
|
||||
},
|
||||
{
|
||||
"language": "fortran",
|
||||
"status": "Passed",
|
||||
"queued_duration": 114.265316,
|
||||
"started_at": "2026-01-23T11:38:39Z",
|
||||
"updated_at": "2026-01-23T11:39:58Z",
|
||||
"job_id": 29240,
|
||||
"duration_seconds": 79
|
||||
},
|
||||
{
|
||||
"language": "v",
|
||||
"status": "Passed",
|
||||
"queued_duration": 123.287121,
|
||||
"started_at": "2026-01-23T11:38:52Z",
|
||||
"updated_at": "2026-01-23T11:40:10Z",
|
||||
"job_id": 29244,
|
||||
"duration_seconds": 78
|
||||
},
|
||||
{
|
||||
"language": "nim",
|
||||
"status": "Passed",
|
||||
"queued_duration": 120.712278,
|
||||
"started_at": "2026-01-23T11:38:49Z",
|
||||
"updated_at": "2026-01-23T11:40:07Z",
|
||||
"job_id": 29243,
|
||||
"duration_seconds": 78
|
||||
},
|
||||
{
|
||||
"language": "d",
|
||||
"status": "Passed",
|
||||
"queued_duration": 113.610461,
|
||||
"started_at": "2026-01-23T11:38:40Z",
|
||||
"updated_at": "2026-01-23T11:39:58Z",
|
||||
"job_id": 29241,
|
||||
"duration_seconds": 78
|
||||
},
|
||||
{
|
||||
"language": "python",
|
||||
"status": "Passed",
|
||||
"queued_duration": 9.830818,
|
||||
"started_at": "2026-01-23T11:36:50Z",
|
||||
"updated_at": "2026-01-23T11:37:46Z",
|
||||
"job_id": 29212,
|
||||
"duration_seconds": 56
|
||||
},
|
||||
{
|
||||
"language": "lua",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.145293,
|
||||
"started_at": "2026-01-23T11:36:55Z",
|
||||
"updated_at": "2026-01-23T11:37:46Z",
|
||||
"job_id": 29218,
|
||||
"duration_seconds": 51
|
||||
},
|
||||
{
|
||||
"language": "typescript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 242.356547,
|
||||
"started_at": "2026-01-23T11:41:54Z",
|
||||
"updated_at": "2026-01-23T11:42:29Z",
|
||||
"job_id": 29259,
|
||||
"duration_seconds": 35
|
||||
},
|
||||
{
|
||||
"language": "ruby",
|
||||
"status": "Passed",
|
||||
"queued_duration": 242.580658,
|
||||
"started_at": "2026-01-23T11:41:56Z",
|
||||
"updated_at": "2026-01-23T11:42:29Z",
|
||||
"job_id": 29260,
|
||||
"duration_seconds": 33
|
||||
},
|
||||
{
|
||||
"language": "powershell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 242.868492,
|
||||
"started_at": "2026-01-23T11:41:57Z",
|
||||
"updated_at": "2026-01-23T11:42:27Z",
|
||||
"job_id": 29261,
|
||||
"duration_seconds": 30
|
||||
},
|
||||
{
|
||||
"language": "erlang",
|
||||
"status": "Passed",
|
||||
"queued_duration": 193.375115,
|
||||
"started_at": "2026-01-23T11:41:59Z",
|
||||
"updated_at": "2026-01-23T11:42:29Z",
|
||||
"job_id": 29264,
|
||||
"duration_seconds": 30
|
||||
},
|
||||
{
|
||||
"language": "bash",
|
||||
"status": "Passed",
|
||||
"queued_duration": 240.948353,
|
||||
"started_at": "2026-01-23T11:41:58Z",
|
||||
"updated_at": "2026-01-23T11:42:27Z",
|
||||
"job_id": 29262,
|
||||
"duration_seconds": 29
|
||||
}
|
||||
]
|
||||
}
|
||||
146
reports/4.2.10/perf.md
Normal file
146
reports/4.2.10/perf.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# Performance Report: 4.2.10
|
||||
|
||||
**Generated:** 2026-01-23T11:46:18Z
|
||||
**Pipeline:** [#12089](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/12089)
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Tests | 673 |
|
||||
| Passed | 671 |
|
||||
| Failed | 2 |
|
||||
| Pass Rate | 99.7% |
|
||||
| Languages | 43 |
|
||||
| Avg Duration | 153s |
|
||||
| Slowest | scheme (320s) |
|
||||
| Fastest | bash (29s) |
|
||||
|
||||
---
|
||||
|
||||
## 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:**
|
||||
- **SCHEME** and **CLOJURE** are outliers at 90+ seconds
|
||||
- Most languages cluster between 20-40 seconds
|
||||
- Compiled languages (red) tend to be faster than interpreted (blue)
|
||||
- **BASH** is the fastest at 29 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 (scheme, clojure)
|
||||
|
||||
---
|
||||
|
||||
## Speed Leaders
|
||||
|
||||
Side-by-side comparison of the 10 slowest and 10 fastest languages.
|
||||
|
||||

|
||||
|
||||
**Slowest (left):** SCHEME, CLOJURE, DENO, C, JULIA
|
||||
**Fastest (right):** BASH, ERLANG, POWERSHELL, RUBY, TYPESCRIPT
|
||||
|
||||
---
|
||||
|
||||
## 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 - scheme and clojure took longest to execute regardless of queue time
|
||||
|
||||
---
|
||||
|
||||
## Dashboard
|
||||
|
||||
Summary dashboard combining key metrics and visualizations.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Raw Data
|
||||
|
||||
### Per-Language Performance
|
||||
|
||||
| Language | Status | Duration |
|
||||
|----------|--------|----------|
|
||||
| scheme | Passed | 320s |
|
||||
| clojure | Passed | 310s |
|
||||
| deno | Passed | 281s |
|
||||
| c | Passed | 276s |
|
||||
| julia | Passed | 271s |
|
||||
| prolog | Passed | 262s |
|
||||
| raku | Passed | 249s |
|
||||
| awk | Passed | 247s |
|
||||
| cpp | Passed | 242s |
|
||||
| ocaml | Passed | 240s |
|
||||
| kotlin | Passed | 240s |
|
||||
| csharp | Passed | 235s |
|
||||
| haskell | Passed | 214s |
|
||||
| forth | Passed | 207s |
|
||||
| tcl | Failed | 198s |
|
||||
| zig | Passed | 185s |
|
||||
| r | Passed | 181s |
|
||||
| rust | Passed | 176s |
|
||||
| commonlisp | Passed | 169s |
|
||||
| go | Passed | 161s |
|
||||
| groovy | Failed | 151s |
|
||||
| dart | Passed | 149s |
|
||||
| fsharp | Passed | 148s |
|
||||
| java | Passed | 122s |
|
||||
| php | Passed | 117s |
|
||||
| dotnet | Passed | 112s |
|
||||
| javascript | Passed | 107s |
|
||||
| perl | Passed | 105s |
|
||||
| elixir | Passed | 98s |
|
||||
| crystal | Passed | 89s |
|
||||
| objc | Passed | 83s |
|
||||
| cobol | Passed | 82s |
|
||||
| fortran | Passed | 79s |
|
||||
| v | Passed | 78s |
|
||||
| nim | Passed | 78s |
|
||||
| d | Passed | 78s |
|
||||
| python | Passed | 56s |
|
||||
| lua | Passed | 51s |
|
||||
| typescript | Passed | 35s |
|
||||
| ruby | Passed | 33s |
|
||||
| powershell | Passed | 30s |
|
||||
| erlang | Passed | 30s |
|
||||
| bash | Passed | 29s |
|
||||
|
||||
---
|
||||
|
||||
*Report generated by UN Inception CI pipeline*
|
||||
|
|
@ -14,3 +14,4 @@ Tracking compile and test execution times across releases.
|
|||
| 4.2.7 | 2026-01-23 | 631 | 99.8% | 117s | typescript | dotnet |
|
||||
| 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 |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue