perf - Add performance report for 4.2.5 [ci skip]
This commit is contained in:
parent
27e3ee5ffa
commit
106e2014d5
9 changed files with 544 additions and 0 deletions
BIN
reports/4.2.5/chart-category-comparison.png
Normal file
BIN
reports/4.2.5/chart-category-comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
reports/4.2.5/chart-dashboard.png
Normal file
BIN
reports/4.2.5/chart-dashboard.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
reports/4.2.5/chart-duration-by-language.png
Normal file
BIN
reports/4.2.5/chart-duration-by-language.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
BIN
reports/4.2.5/chart-duration-histogram.png
Normal file
BIN
reports/4.2.5/chart-duration-histogram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
BIN
reports/4.2.5/chart-queue-vs-execution.png
Normal file
BIN
reports/4.2.5/chart-queue-vs-execution.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 104 KiB |
BIN
reports/4.2.5/chart-speed-leaders.png
Normal file
BIN
reports/4.2.5/chart-speed-leaders.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
398
reports/4.2.5/perf.json
Normal file
398
reports/4.2.5/perf.json
Normal file
|
|
@ -0,0 +1,398 @@
|
|||
{
|
||||
"tag": "4.2.5",
|
||||
"generated_at": "2026-01-19T19:10:23Z",
|
||||
"parent_pipeline_id": 11331,
|
||||
"child_pipeline_id": 11336,
|
||||
"summary": {
|
||||
"total_tests": 658,
|
||||
"passed_tests": 658,
|
||||
"failed_tests": 0,
|
||||
"total_languages": 42,
|
||||
"passed_languages": 42,
|
||||
"avg_duration_seconds": 67,
|
||||
"max_duration_seconds": 114,
|
||||
"min_duration_seconds": 44,
|
||||
"slowest_language": "v",
|
||||
"fastest_language": "erlang"
|
||||
},
|
||||
"languages": [
|
||||
{
|
||||
"language": "v",
|
||||
"status": "Passed",
|
||||
"queued_duration": 112.851707,
|
||||
"started_at": "2026-01-19T19:07:04Z",
|
||||
"updated_at": "2026-01-19T19:08:58Z",
|
||||
"job_id": 26979,
|
||||
"duration_seconds": 114
|
||||
},
|
||||
{
|
||||
"language": "haskell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 134.561469,
|
||||
"started_at": "2026-01-19T19:07:26Z",
|
||||
"updated_at": "2026-01-19T19:09:12Z",
|
||||
"job_id": 26983,
|
||||
"duration_seconds": 106
|
||||
},
|
||||
{
|
||||
"language": "scheme",
|
||||
"status": "Passed",
|
||||
"queued_duration": 43.239826,
|
||||
"started_at": "2026-01-19T19:05:52Z",
|
||||
"updated_at": "2026-01-19T19:07:34Z",
|
||||
"job_id": 26959,
|
||||
"duration_seconds": 102
|
||||
},
|
||||
{
|
||||
"language": "ocaml",
|
||||
"status": "Passed",
|
||||
"queued_duration": 135.652973,
|
||||
"started_at": "2026-01-19T19:07:28Z",
|
||||
"updated_at": "2026-01-19T19:09:02Z",
|
||||
"job_id": 26984,
|
||||
"duration_seconds": 94
|
||||
},
|
||||
{
|
||||
"language": "powershell",
|
||||
"status": "Passed",
|
||||
"queued_duration": 58.688364,
|
||||
"started_at": "2026-01-19T19:06:08Z",
|
||||
"updated_at": "2026-01-19T19:07:39Z",
|
||||
"job_id": 26960,
|
||||
"duration_seconds": 91
|
||||
},
|
||||
{
|
||||
"language": "julia",
|
||||
"status": "Passed",
|
||||
"queued_duration": 130.883769,
|
||||
"started_at": "2026-01-19T19:07:23Z",
|
||||
"updated_at": "2026-01-19T19:08:51Z",
|
||||
"job_id": 26982,
|
||||
"duration_seconds": 88
|
||||
},
|
||||
{
|
||||
"language": "crystal",
|
||||
"status": "Passed",
|
||||
"queued_duration": 65.688192,
|
||||
"started_at": "2026-01-19T19:06:15Z",
|
||||
"updated_at": "2026-01-19T19:07:43Z",
|
||||
"job_id": 26963,
|
||||
"duration_seconds": 88
|
||||
},
|
||||
{
|
||||
"language": "fsharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 136.243719,
|
||||
"started_at": "2026-01-19T19:07:28Z",
|
||||
"updated_at": "2026-01-19T19:08:53Z",
|
||||
"job_id": 26985,
|
||||
"duration_seconds": 85
|
||||
},
|
||||
{
|
||||
"language": "forth",
|
||||
"status": "Passed",
|
||||
"queued_duration": 138.21351,
|
||||
"started_at": "2026-01-19T19:07:32Z",
|
||||
"updated_at": "2026-01-19T19:08:52Z",
|
||||
"job_id": 26988,
|
||||
"duration_seconds": 80
|
||||
},
|
||||
{
|
||||
"language": "objc",
|
||||
"status": "Passed",
|
||||
"queued_duration": 116.853074,
|
||||
"started_at": "2026-01-19T19:07:08Z",
|
||||
"updated_at": "2026-01-19T19:08:27Z",
|
||||
"job_id": 26980,
|
||||
"duration_seconds": 79
|
||||
},
|
||||
{
|
||||
"language": "clojure",
|
||||
"status": "Passed",
|
||||
"queued_duration": 60.216959,
|
||||
"started_at": "2026-01-19T19:06:10Z",
|
||||
"updated_at": "2026-01-19T19:07:25Z",
|
||||
"job_id": 26961,
|
||||
"duration_seconds": 75
|
||||
},
|
||||
{
|
||||
"language": "prolog",
|
||||
"status": "Passed",
|
||||
"queued_duration": 137.68259,
|
||||
"started_at": "2026-01-19T19:07:31Z",
|
||||
"updated_at": "2026-01-19T19:08:45Z",
|
||||
"job_id": 26987,
|
||||
"duration_seconds": 74
|
||||
},
|
||||
{
|
||||
"language": "groovy",
|
||||
"status": "Passed",
|
||||
"queued_duration": 67.476035,
|
||||
"started_at": "2026-01-19T19:06:17Z",
|
||||
"updated_at": "2026-01-19T19:07:27Z",
|
||||
"job_id": 26964,
|
||||
"duration_seconds": 70
|
||||
},
|
||||
{
|
||||
"language": "commonlisp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 63.159744,
|
||||
"started_at": "2026-01-19T19:06:13Z",
|
||||
"updated_at": "2026-01-19T19:07:23Z",
|
||||
"job_id": 26962,
|
||||
"duration_seconds": 70
|
||||
},
|
||||
{
|
||||
"language": "dart",
|
||||
"status": "Passed",
|
||||
"queued_duration": 122.607947,
|
||||
"started_at": "2026-01-19T19:07:14Z",
|
||||
"updated_at": "2026-01-19T19:08:22Z",
|
||||
"job_id": 26981,
|
||||
"duration_seconds": 68
|
||||
},
|
||||
{
|
||||
"language": "c",
|
||||
"status": "Passed",
|
||||
"queued_duration": 68.009358,
|
||||
"started_at": "2026-01-19T19:06:20Z",
|
||||
"updated_at": "2026-01-19T19:07:28Z",
|
||||
"job_id": 26968,
|
||||
"duration_seconds": 68
|
||||
},
|
||||
{
|
||||
"language": "go",
|
||||
"status": "Passed",
|
||||
"queued_duration": 69.591526,
|
||||
"started_at": "2026-01-19T19:06:22Z",
|
||||
"updated_at": "2026-01-19T19:07:27Z",
|
||||
"job_id": 26970,
|
||||
"duration_seconds": 65
|
||||
},
|
||||
{
|
||||
"language": "cpp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 68.728312,
|
||||
"started_at": "2026-01-19T19:06:21Z",
|
||||
"updated_at": "2026-01-19T19:07:26Z",
|
||||
"job_id": 26969,
|
||||
"duration_seconds": 65
|
||||
},
|
||||
{
|
||||
"language": "rust",
|
||||
"status": "Passed",
|
||||
"queued_duration": 70.138932,
|
||||
"started_at": "2026-01-19T19:06:23Z",
|
||||
"updated_at": "2026-01-19T19:07:27Z",
|
||||
"job_id": 26971,
|
||||
"duration_seconds": 64
|
||||
},
|
||||
{
|
||||
"language": "csharp",
|
||||
"status": "Passed",
|
||||
"queued_duration": 138.075521,
|
||||
"started_at": "2026-01-19T19:07:30Z",
|
||||
"updated_at": "2026-01-19T19:08:33Z",
|
||||
"job_id": 26986,
|
||||
"duration_seconds": 63
|
||||
},
|
||||
{
|
||||
"language": "java",
|
||||
"status": "Passed",
|
||||
"queued_duration": 70.974228,
|
||||
"started_at": "2026-01-19T19:06:24Z",
|
||||
"updated_at": "2026-01-19T19:07:26Z",
|
||||
"job_id": 26972,
|
||||
"duration_seconds": 62
|
||||
},
|
||||
{
|
||||
"language": "python",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.209672,
|
||||
"started_at": "2026-01-19T19:05:16Z",
|
||||
"updated_at": "2026-01-19T19:06:17Z",
|
||||
"job_id": 26947,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "kotlin",
|
||||
"status": "Passed",
|
||||
"queued_duration": 74.536639,
|
||||
"started_at": "2026-01-19T19:06:25Z",
|
||||
"updated_at": "2026-01-19T19:07:26Z",
|
||||
"job_id": 26973,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "cobol",
|
||||
"status": "Passed",
|
||||
"queued_duration": 75.13891,
|
||||
"started_at": "2026-01-19T19:06:26Z",
|
||||
"updated_at": "2026-01-19T19:07:27Z",
|
||||
"job_id": 26974,
|
||||
"duration_seconds": 61
|
||||
},
|
||||
{
|
||||
"language": "ruby",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.364693,
|
||||
"started_at": "2026-01-19T19:05:18Z",
|
||||
"updated_at": "2026-01-19T19:06:18Z",
|
||||
"job_id": 26950,
|
||||
"duration_seconds": 60
|
||||
},
|
||||
{
|
||||
"language": "javascript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 12.896362,
|
||||
"started_at": "2026-01-19T19:05:17Z",
|
||||
"updated_at": "2026-01-19T19:06:17Z",
|
||||
"job_id": 26948,
|
||||
"duration_seconds": 60
|
||||
},
|
||||
{
|
||||
"language": "zig",
|
||||
"status": "Passed",
|
||||
"queued_duration": 76.512895,
|
||||
"started_at": "2026-01-19T19:06:27Z",
|
||||
"updated_at": "2026-01-19T19:07:26Z",
|
||||
"job_id": 26977,
|
||||
"duration_seconds": 59
|
||||
},
|
||||
{
|
||||
"language": "typescript",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.163517,
|
||||
"started_at": "2026-01-19T19:05:17Z",
|
||||
"updated_at": "2026-01-19T19:06:16Z",
|
||||
"job_id": 26949,
|
||||
"duration_seconds": 59
|
||||
},
|
||||
{
|
||||
"language": "nim",
|
||||
"status": "Passed",
|
||||
"queued_duration": 77.03571,
|
||||
"started_at": "2026-01-19T19:06:28Z",
|
||||
"updated_at": "2026-01-19T19:07:26Z",
|
||||
"job_id": 26978,
|
||||
"duration_seconds": 58
|
||||
},
|
||||
{
|
||||
"language": "fortran",
|
||||
"status": "Passed",
|
||||
"queued_duration": 75.673614,
|
||||
"started_at": "2026-01-19T19:06:26Z",
|
||||
"updated_at": "2026-01-19T19:07:23Z",
|
||||
"job_id": 26975,
|
||||
"duration_seconds": 57
|
||||
},
|
||||
{
|
||||
"language": "php",
|
||||
"status": "Passed",
|
||||
"queued_duration": 14.189554,
|
||||
"started_at": "2026-01-19T19:05:19Z",
|
||||
"updated_at": "2026-01-19T19:06:14Z",
|
||||
"job_id": 26952,
|
||||
"duration_seconds": 55
|
||||
},
|
||||
{
|
||||
"language": "elixir",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.896723,
|
||||
"started_at": "2026-01-19T19:05:23Z",
|
||||
"updated_at": "2026-01-19T19:06:18Z",
|
||||
"job_id": 26956,
|
||||
"duration_seconds": 55
|
||||
},
|
||||
{
|
||||
"language": "d",
|
||||
"status": "Passed",
|
||||
"queued_duration": 76.132485,
|
||||
"started_at": "2026-01-19T19:06:27Z",
|
||||
"updated_at": "2026-01-19T19:07:22Z",
|
||||
"job_id": 26976,
|
||||
"duration_seconds": 55
|
||||
},
|
||||
{
|
||||
"language": "raku",
|
||||
"status": "Passed",
|
||||
"queued_duration": 67.385131,
|
||||
"started_at": "2026-01-19T19:06:20Z",
|
||||
"updated_at": "2026-01-19T19:07:14Z",
|
||||
"job_id": 26967,
|
||||
"duration_seconds": 54
|
||||
},
|
||||
{
|
||||
"language": "perl",
|
||||
"status": "Passed",
|
||||
"queued_duration": 13.887735,
|
||||
"started_at": "2026-01-19T19:05:19Z",
|
||||
"updated_at": "2026-01-19T19:06:12Z",
|
||||
"job_id": 26951,
|
||||
"duration_seconds": 53
|
||||
},
|
||||
{
|
||||
"language": "r",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.845666,
|
||||
"started_at": "2026-01-19T19:05:23Z",
|
||||
"updated_at": "2026-01-19T19:06:15Z",
|
||||
"job_id": 26955,
|
||||
"duration_seconds": 52
|
||||
},
|
||||
{
|
||||
"language": "lua",
|
||||
"status": "Passed",
|
||||
"queued_duration": 14.579995,
|
||||
"started_at": "2026-01-19T19:05:20Z",
|
||||
"updated_at": "2026-01-19T19:06:12Z",
|
||||
"job_id": 26953,
|
||||
"duration_seconds": 52
|
||||
},
|
||||
{
|
||||
"language": "tcl",
|
||||
"status": "Passed",
|
||||
"queued_duration": 16.026982,
|
||||
"started_at": "2026-01-19T19:05:24Z",
|
||||
"updated_at": "2026-01-19T19:06:15Z",
|
||||
"job_id": 26958,
|
||||
"duration_seconds": 51
|
||||
},
|
||||
{
|
||||
"language": "deno",
|
||||
"status": "Passed",
|
||||
"queued_duration": 68.534767,
|
||||
"started_at": "2026-01-19T19:06:18Z",
|
||||
"updated_at": "2026-01-19T19:07:08Z",
|
||||
"job_id": 26965,
|
||||
"duration_seconds": 50
|
||||
},
|
||||
{
|
||||
"language": "bash",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.187889,
|
||||
"started_at": "2026-01-19T19:05:21Z",
|
||||
"updated_at": "2026-01-19T19:06:08Z",
|
||||
"job_id": 26954,
|
||||
"duration_seconds": 47
|
||||
},
|
||||
{
|
||||
"language": "awk",
|
||||
"status": "Passed",
|
||||
"queued_duration": 69.048071,
|
||||
"started_at": "2026-01-19T19:06:19Z",
|
||||
"updated_at": "2026-01-19T19:07:05Z",
|
||||
"job_id": 26966,
|
||||
"duration_seconds": 46
|
||||
},
|
||||
{
|
||||
"language": "erlang",
|
||||
"status": "Passed",
|
||||
"queued_duration": 15.825814,
|
||||
"started_at": "2026-01-19T19:05:24Z",
|
||||
"updated_at": "2026-01-19T19:06:08Z",
|
||||
"job_id": 26957,
|
||||
"duration_seconds": 44
|
||||
}
|
||||
]
|
||||
}
|
||||
145
reports/4.2.5/perf.md
Normal file
145
reports/4.2.5/perf.md
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
# Performance Report: 4.2.5
|
||||
|
||||
**Generated:** 2026-01-19T19:10:23Z
|
||||
**Pipeline:** [#11336](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/11336)
|
||||
|
||||
## Summary
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Tests | 658 |
|
||||
| Passed | 658 |
|
||||
| Failed | 0 |
|
||||
| Pass Rate | 100.0% |
|
||||
| Languages | 42 |
|
||||
| Avg Duration | 67s |
|
||||
| Slowest | v (114s) |
|
||||
| Fastest | erlang (44s) |
|
||||
|
||||
---
|
||||
|
||||
## 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:**
|
||||
- **V** and **HASKELL** 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 44 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 42 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 (v, haskell)
|
||||
|
||||
---
|
||||
|
||||
## Speed Leaders
|
||||
|
||||
Side-by-side comparison of the 10 slowest and 10 fastest languages.
|
||||
|
||||

|
||||
|
||||
**Slowest (left):** V, HASKELL, SCHEME, OCAML, POWERSHELL
|
||||
**Fastest (right):** ERLANG, AWK, BASH, DENO, TCL
|
||||
|
||||
---
|
||||
|
||||
## 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 - v and haskell took longest to execute regardless of queue time
|
||||
|
||||
---
|
||||
|
||||
## Dashboard
|
||||
|
||||
Summary dashboard combining key metrics and visualizations.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Raw Data
|
||||
|
||||
### Per-Language Performance
|
||||
|
||||
| Language | Status | Duration |
|
||||
|----------|--------|----------|
|
||||
| v | Passed | 114s |
|
||||
| haskell | Passed | 106s |
|
||||
| scheme | Passed | 102s |
|
||||
| ocaml | Passed | 94s |
|
||||
| powershell | Passed | 91s |
|
||||
| julia | Passed | 88s |
|
||||
| crystal | Passed | 88s |
|
||||
| fsharp | Passed | 85s |
|
||||
| forth | Passed | 80s |
|
||||
| objc | Passed | 79s |
|
||||
| clojure | Passed | 75s |
|
||||
| prolog | Passed | 74s |
|
||||
| groovy | Passed | 70s |
|
||||
| commonlisp | Passed | 70s |
|
||||
| dart | Passed | 68s |
|
||||
| c | Passed | 68s |
|
||||
| go | Passed | 65s |
|
||||
| cpp | Passed | 65s |
|
||||
| rust | Passed | 64s |
|
||||
| csharp | Passed | 63s |
|
||||
| java | Passed | 62s |
|
||||
| python | Passed | 61s |
|
||||
| kotlin | Passed | 61s |
|
||||
| cobol | Passed | 61s |
|
||||
| ruby | Passed | 60s |
|
||||
| javascript | Passed | 60s |
|
||||
| zig | Passed | 59s |
|
||||
| typescript | Passed | 59s |
|
||||
| nim | Passed | 58s |
|
||||
| fortran | Passed | 57s |
|
||||
| php | Passed | 55s |
|
||||
| elixir | Passed | 55s |
|
||||
| d | Passed | 55s |
|
||||
| raku | Passed | 54s |
|
||||
| perl | Passed | 53s |
|
||||
| r | Passed | 52s |
|
||||
| lua | Passed | 52s |
|
||||
| tcl | Passed | 51s |
|
||||
| deno | Passed | 50s |
|
||||
| bash | Passed | 47s |
|
||||
| awk | Passed | 46s |
|
||||
| erlang | Passed | 44s |
|
||||
|
||||
---
|
||||
|
||||
*Report generated by UN Inception CI pipeline*
|
||||
|
|
@ -9,3 +9,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 |
|
||||
| 4.2.5 | 2026-01-19 | 658 | 100.0% | 67s | v | erlang |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue