diff --git a/reports/4.2.0/chart-category-comparison.png b/reports/4.2.0/chart-category-comparison.png deleted file mode 100644 index 8ba643e..0000000 Binary files a/reports/4.2.0/chart-category-comparison.png and /dev/null differ diff --git a/reports/4.2.0/chart-dashboard.png b/reports/4.2.0/chart-dashboard.png deleted file mode 100644 index 68f407c..0000000 Binary files a/reports/4.2.0/chart-dashboard.png and /dev/null differ diff --git a/reports/4.2.0/chart-duration-by-language.png b/reports/4.2.0/chart-duration-by-language.png deleted file mode 100644 index b7b1e4b..0000000 Binary files a/reports/4.2.0/chart-duration-by-language.png and /dev/null differ diff --git a/reports/4.2.0/chart-duration-histogram.png b/reports/4.2.0/chart-duration-histogram.png deleted file mode 100644 index a64cad2..0000000 Binary files a/reports/4.2.0/chart-duration-histogram.png and /dev/null differ diff --git a/reports/4.2.0/chart-queue-vs-execution.png b/reports/4.2.0/chart-queue-vs-execution.png deleted file mode 100644 index 64b3874..0000000 Binary files a/reports/4.2.0/chart-queue-vs-execution.png and /dev/null differ diff --git a/reports/4.2.0/chart-speed-leaders.png b/reports/4.2.0/chart-speed-leaders.png deleted file mode 100644 index d32e8f4..0000000 Binary files a/reports/4.2.0/chart-speed-leaders.png and /dev/null differ diff --git a/reports/4.2.0/perf.json b/reports/4.2.0/perf.json deleted file mode 100644 index d466bc3..0000000 --- a/reports/4.2.0/perf.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "tag": "4.2.0", - "generated_at": "2026-01-18T23:20:51Z", - "parent_pipeline_id": 11103, - "child_pipeline_id": 11105, - "summary": { - "total_tests": 642, - "passed_tests": 642, - "failed_tests": 0, - "total_languages": 42, - "passed_languages": 42, - "avg_duration_seconds": 33, - "max_duration_seconds": 93, - "min_duration_seconds": 19, - "slowest_language": "raku", - "fastest_language": "ocaml" - }, - "languages": [ - { - "language": "raku", - "status": "Passed", - "queued_duration": 45.874547, - "started_at": "2026-01-18T23:19:08Z", - "updated_at": "2026-01-18T23:20:41Z", - "job_id": 25987, - "duration_seconds": 93 - }, - { - "language": "javascript", - "status": "Passed", - "queued_duration": 45.713228, - "started_at": "2026-01-18T23:19:09Z", - "updated_at": "2026-01-18T23:20:39Z", - "job_id": 25988, - "duration_seconds": 90 - }, - { - "language": "cpp", - "status": "Passed", - "queued_duration": 47.639099, - "started_at": "2026-01-18T23:19:11Z", - "updated_at": "2026-01-18T23:20:17Z", - "job_id": 25989, - "duration_seconds": 66 - }, - { - "language": "rust", - "status": "Passed", - "queued_duration": 68.252862, - "started_at": "2026-01-18T23:18:14Z", - "updated_at": "2026-01-18T23:19:18Z", - "job_id": 25949, - "duration_seconds": 64 - }, - { - "language": "go", - "status": "Passed", - "queued_duration": 63.143834, - "started_at": "2026-01-18T23:18:09Z", - "updated_at": "2026-01-18T23:19:02Z", - "job_id": 25948, - "duration_seconds": 53 - }, - { - "language": "prolog", - "status": "Passed", - "queued_duration": 78.429367, - "started_at": "2026-01-18T23:18:28Z", - "updated_at": "2026-01-18T23:19:18Z", - "job_id": 25965, - "duration_seconds": 50 - }, - { - "language": "bash", - "status": "Passed", - "queued_duration": 21.829044, - "started_at": "2026-01-18T23:18:29Z", - "updated_at": "2026-01-18T23:19:12Z", - "job_id": 25969, - "duration_seconds": 43 - }, - { - "language": "forth", - "status": "Passed", - "queued_duration": 79.501956, - "started_at": "2026-01-18T23:18:28Z", - "updated_at": "2026-01-18T23:19:10Z", - "job_id": 25966, - "duration_seconds": 42 - }, - { - "language": "python", - "status": "Passed", - "queued_duration": 3.233989, - "started_at": "2026-01-18T23:17:03Z", - "updated_at": "2026-01-18T23:17:43Z", - "job_id": 25925, - "duration_seconds": 40 - }, - { - "language": "powershell", - "status": "Passed", - "queued_duration": 20.769991, - "started_at": "2026-01-18T23:18:29Z", - "updated_at": "2026-01-18T23:19:08Z", - "job_id": 25970, - "duration_seconds": 39 - }, - { - "language": "java", - "status": "Passed", - "queued_duration": 69.848299, - "started_at": "2026-01-18T23:18:16Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25950, - "duration_seconds": 36 - }, - { - "language": "ruby", - "status": "Passed", - "queued_duration": 7.238856, - "started_at": "2026-01-18T23:17:07Z", - "updated_at": "2026-01-18T23:17:42Z", - "job_id": 25928, - "duration_seconds": 35 - }, - { - "language": "d", - "status": "Passed", - "queued_duration": 72.304204, - "started_at": "2026-01-18T23:18:19Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25954, - "duration_seconds": 33 - }, - { - "language": "zig", - "status": "Passed", - "queued_duration": 72.953565, - "started_at": "2026-01-18T23:18:20Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25955, - "duration_seconds": 32 - }, - { - "language": "lua", - "status": "Passed", - "queued_duration": 29.233779, - "started_at": "2026-01-18T23:18:38Z", - "updated_at": "2026-01-18T23:19:10Z", - "job_id": 25971, - "duration_seconds": 32 - }, - { - "language": "julia", - "status": "Passed", - "queued_duration": 76.620144, - "started_at": "2026-01-18T23:18:24Z", - "updated_at": "2026-01-18T23:18:56Z", - "job_id": 25960, - "duration_seconds": 32 - }, - { - "language": "nim", - "status": "Passed", - "queued_duration": 73.5841, - "started_at": "2026-01-18T23:18:21Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25956, - "duration_seconds": 31 - }, - { - "language": "commonlisp", - "status": "Passed", - "queued_duration": 45.039873, - "started_at": "2026-01-18T23:19:02Z", - "updated_at": "2026-01-18T23:19:32Z", - "job_id": 25986, - "duration_seconds": 30 - }, - { - "language": "typescript", - "status": "Passed", - "queued_duration": 32.115787, - "started_at": "2026-01-18T23:18:44Z", - "updated_at": "2026-01-18T23:19:13Z", - "job_id": 25973, - "duration_seconds": 29 - }, - { - "language": "objc", - "status": "Passed", - "queued_duration": 75.636115, - "started_at": "2026-01-18T23:18:23Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25958, - "duration_seconds": 29 - }, - { - "language": "erlang", - "status": "Passed", - "queued_duration": 32.710848, - "started_at": "2026-01-18T23:18:45Z", - "updated_at": "2026-01-18T23:19:14Z", - "job_id": 25974, - "duration_seconds": 29 - }, - { - "language": "dart", - "status": "Passed", - "queued_duration": 76.000909, - "started_at": "2026-01-18T23:18:24Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25959, - "duration_seconds": 28 - }, - { - "language": "kotlin", - "status": "Passed", - "queued_duration": 71.065836, - "started_at": "2026-01-18T23:18:17Z", - "updated_at": "2026-01-18T23:18:44Z", - "job_id": 25951, - "duration_seconds": 27 - }, - { - "language": "perl", - "status": "Passed", - "queued_duration": 34.240776, - "started_at": "2026-01-18T23:18:46Z", - "updated_at": "2026-01-18T23:19:12Z", - "job_id": 25975, - "duration_seconds": 26 - }, - { - "language": "fsharp", - "status": "Passed", - "queued_duration": 77.832273, - "started_at": "2026-01-18T23:18:26Z", - "updated_at": "2026-01-18T23:18:52Z", - "job_id": 25963, - "duration_seconds": 26 - }, - { - "language": "r", - "status": "Passed", - "queued_duration": 33.605649, - "started_at": "2026-01-18T23:18:47Z", - "updated_at": "2026-01-18T23:19:12Z", - "job_id": 25976, - "duration_seconds": 25 - }, - { - "language": "fortran", - "status": "Passed", - "queued_duration": 71.844626, - "started_at": "2026-01-18T23:18:18Z", - "updated_at": "2026-01-18T23:18:43Z", - "job_id": 25953, - "duration_seconds": 25 - }, - { - "language": "deno", - "status": "Passed", - "queued_duration": 38.323477, - "started_at": "2026-01-18T23:18:53Z", - "updated_at": "2026-01-18T23:19:18Z", - "job_id": 25980, - "duration_seconds": 25 - }, - { - "language": "awk", - "status": "Passed", - "queued_duration": 32.582507, - "started_at": "2026-01-18T23:18:43Z", - "updated_at": "2026-01-18T23:19:08Z", - "job_id": 25972, - "duration_seconds": 25 - }, - { - "language": "scheme", - "status": "Passed", - "queued_duration": 34.230634, - "started_at": "2026-01-18T23:18:48Z", - "updated_at": "2026-01-18T23:19:12Z", - "job_id": 25977, - "duration_seconds": 24 - }, - { - "language": "crystal", - "status": "Passed", - "queued_duration": 37.272444, - "started_at": "2026-01-18T23:18:52Z", - "updated_at": "2026-01-18T23:19:16Z", - "job_id": 25978, - "duration_seconds": 24 - }, - { - "language": "php", - "status": "Passed", - "queued_duration": 38.391039, - "started_at": "2026-01-18T23:18:54Z", - "updated_at": "2026-01-18T23:19:17Z", - "job_id": 25982, - "duration_seconds": 23 - }, - { - "language": "groovy", - "status": "Passed", - "queued_duration": 37.701182, - "started_at": "2026-01-18T23:18:54Z", - "updated_at": "2026-01-18T23:19:17Z", - "job_id": 25981, - "duration_seconds": 23 - }, - { - "language": "c", - "status": "Passed", - "queued_duration": 38.530095, - "started_at": "2026-01-18T23:18:55Z", - "updated_at": "2026-01-18T23:19:18Z", - "job_id": 25983, - "duration_seconds": 23 - }, - { - "language": "v", - "status": "Passed", - "queued_duration": 74.589707, - "started_at": "2026-01-18T23:18:22Z", - "updated_at": "2026-01-18T23:18:44Z", - "job_id": 25957, - "duration_seconds": 22 - }, - { - "language": "haskell", - "status": "Passed", - "queued_duration": 76.893928, - "started_at": "2026-01-18T23:18:25Z", - "updated_at": "2026-01-18T23:18:46Z", - "job_id": 25961, - "duration_seconds": 21 - }, - { - "language": "clojure", - "status": "Passed", - "queued_duration": 40.587515, - "started_at": "2026-01-18T23:18:57Z", - "updated_at": "2026-01-18T23:19:18Z", - "job_id": 25985, - "duration_seconds": 21 - }, - { - "language": "tcl", - "status": "Passed", - "queued_duration": 38.346762, - "started_at": "2026-01-18T23:18:53Z", - "updated_at": "2026-01-18T23:19:13Z", - "job_id": 25979, - "duration_seconds": 20 - }, - { - "language": "elixir", - "status": "Passed", - "queued_duration": 39.917498, - "started_at": "2026-01-18T23:18:56Z", - "updated_at": "2026-01-18T23:19:16Z", - "job_id": 25984, - "duration_seconds": 20 - }, - { - "language": "csharp", - "status": "Passed", - "queued_duration": 82.081382, - "started_at": "2026-01-18T23:18:27Z", - "updated_at": "2026-01-18T23:18:47Z", - "job_id": 25964, - "duration_seconds": 20 - }, - { - "language": "cobol", - "status": "Passed", - "queued_duration": 71.526724, - "started_at": "2026-01-18T23:18:18Z", - "updated_at": "2026-01-18T23:18:38Z", - "job_id": 25952, - "duration_seconds": 20 - }, - { - "language": "ocaml", - "status": "Passed", - "queued_duration": 77.121164, - "started_at": "2026-01-18T23:18:26Z", - "updated_at": "2026-01-18T23:18:45Z", - "job_id": 25962, - "duration_seconds": 19 - } -] -} diff --git a/reports/4.2.0/perf.md b/reports/4.2.0/perf.md deleted file mode 100644 index fb15eae..0000000 --- a/reports/4.2.0/perf.md +++ /dev/null @@ -1,145 +0,0 @@ -# Performance Report: 4.2.0 - -**Generated:** 2026-01-19T01:08:20Z -**Pipeline:** [#11105](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/11105) - -## Summary - -| Metric | Value | -|--------|-------| -| Total Tests | 642 | -| Passed | 642 | -| Failed | 0 | -| Pass Rate | 100.0% | -| Languages | 42 | -| Avg Duration | 33s | -| Slowest | raku (93s) | -| Fastest | ocaml (19s) | - ---- - -## 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:** -- **RAKU** and **JAVASCRIPT** are outliers at 90+ seconds -- Most languages cluster between 20-40 seconds -- Compiled languages (red) tend to be faster than interpreted (blue) -- **OCAML** is the fastest at 19 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 (raku, javascript) - ---- - -## Speed Leaders - -Side-by-side comparison of the 10 slowest and 10 fastest languages. - -![Speed Leaders](chart-speed-leaders.png) - -**Slowest (left):** RAKU, JAVASCRIPT, CPP, RUST, GO -**Fastest (right):** OCAML, COBOL, CSHARP, ELIXIR, TCL - ---- - -## 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 - raku 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 | -|----------|--------|----------| -| raku | Passed | 93s | -| javascript | Passed | 90s | -| cpp | Passed | 66s | -| rust | Passed | 64s | -| go | Passed | 53s | -| prolog | Passed | 50s | -| bash | Passed | 43s | -| forth | Passed | 42s | -| python | Passed | 40s | -| powershell | Passed | 39s | -| java | Passed | 36s | -| ruby | Passed | 35s | -| d | Passed | 33s | -| zig | Passed | 32s | -| lua | Passed | 32s | -| julia | Passed | 32s | -| nim | Passed | 31s | -| commonlisp | Passed | 30s | -| typescript | Passed | 29s | -| objc | Passed | 29s | -| erlang | Passed | 29s | -| dart | Passed | 28s | -| kotlin | Passed | 27s | -| perl | Passed | 26s | -| fsharp | Passed | 26s | -| r | Passed | 25s | -| fortran | Passed | 25s | -| deno | Passed | 25s | -| awk | Passed | 25s | -| scheme | Passed | 24s | -| crystal | Passed | 24s | -| php | Passed | 23s | -| groovy | Passed | 23s | -| c | Passed | 23s | -| v | Passed | 22s | -| haskell | Passed | 21s | -| clojure | Passed | 21s | -| tcl | Passed | 20s | -| elixir | Passed | 20s | -| csharp | Passed | 20s | -| cobol | Passed | 20s | -| ocaml | Passed | 19s | - ---- - -*Report generated by UN Inception CI pipeline* diff --git a/reports/4.2.3/perf.json b/reports/4.2.3/perf.json deleted file mode 100644 index 87e9bf2..0000000 --- a/reports/4.2.3/perf.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "tag": "4.2.3", - "generated_at": "2026-01-19T11:58:45Z", - "parent_pipeline_id": 11250, - "child_pipeline_id": 11252, - "summary": { - "total_tests": 642, - "passed_tests": 642, - "failed_tests": 0, - "total_languages": 42, - "passed_languages": 42, - "avg_duration_seconds": 63, - "max_duration_seconds": 142, - "min_duration_seconds": 40, - "slowest_language": "rust", - "fastest_language": "v" - }, - "languages": [ - { - "language": "rust", - "status": "Passed", - "queued_duration": 71.959997, - "started_at": "2026-01-19T11:55:11Z", - "updated_at": "2026-01-19T11:57:33Z", - "job_id": 26613, - "duration_seconds": 142 - }, - { - "language": "c", - "status": "Passed", - "queued_duration": 63.135606, - "started_at": "2026-01-19T11:55:02Z", - "updated_at": "2026-01-19T11:56:49Z", - "job_id": 26610, - "duration_seconds": 107 - }, - { - "language": "python", - "status": "Passed", - "queued_duration": 2.62747, - "started_at": "2026-01-19T11:53:59Z", - "updated_at": "2026-01-19T11:55:17Z", - "job_id": 26589, - "duration_seconds": 78 - }, - { - "language": "typescript", - "status": "Passed", - "queued_duration": 4.499905, - "started_at": "2026-01-19T11:54:01Z", - "updated_at": "2026-01-19T11:55:16Z", - "job_id": 26591, - "duration_seconds": 75 - }, - { - "language": "javascript", - "status": "Passed", - "queued_duration": 3.602933, - "started_at": "2026-01-19T11:54:00Z", - "updated_at": "2026-01-19T11:55:15Z", - "job_id": 26590, - "duration_seconds": 75 - }, - { - "language": "ruby", - "status": "Passed", - "queued_duration": 5.394929, - "started_at": "2026-01-19T11:54:02Z", - "updated_at": "2026-01-19T11:55:16Z", - "job_id": 26592, - "duration_seconds": 74 - }, - { - "language": "go", - "status": "Passed", - "queued_duration": 68.583599, - "started_at": "2026-01-19T11:55:07Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26612, - "duration_seconds": 74 - }, - { - "language": "php", - "status": "Passed", - "queued_duration": 8.408504, - "started_at": "2026-01-19T11:54:05Z", - "updated_at": "2026-01-19T11:55:15Z", - "job_id": 26594, - "duration_seconds": 70 - }, - { - "language": "cpp", - "status": "Passed", - "queued_duration": 64.466934, - "started_at": "2026-01-19T11:55:03Z", - "updated_at": "2026-01-19T11:56:13Z", - "job_id": 26611, - "duration_seconds": 70 - }, - { - "language": "elixir", - "status": "Passed", - "queued_duration": 10.81407, - "started_at": "2026-01-19T11:54:08Z", - "updated_at": "2026-01-19T11:55:17Z", - "job_id": 26598, - "duration_seconds": 69 - }, - { - "language": "erlang", - "status": "Passed", - "queued_duration": 12.839351, - "started_at": "2026-01-19T11:54:09Z", - "updated_at": "2026-01-19T11:55:17Z", - "job_id": 26599, - "duration_seconds": 68 - }, - { - "language": "java", - "status": "Passed", - "queued_duration": 74.929525, - "started_at": "2026-01-19T11:55:14Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26614, - "duration_seconds": 67 - }, - { - "language": "perl", - "status": "Passed", - "queued_duration": 7.241158, - "started_at": "2026-01-19T11:54:04Z", - "updated_at": "2026-01-19T11:55:10Z", - "job_id": 26593, - "duration_seconds": 66 - }, - { - "language": "scheme", - "status": "Passed", - "queued_duration": 12.492717, - "started_at": "2026-01-19T11:54:10Z", - "updated_at": "2026-01-19T11:55:15Z", - "job_id": 26601, - "duration_seconds": 65 - }, - { - "language": "r", - "status": "Passed", - "queued_duration": 10.305897, - "started_at": "2026-01-19T11:54:07Z", - "updated_at": "2026-01-19T11:55:11Z", - "job_id": 26597, - "duration_seconds": 64 - }, - { - "language": "clojure", - "status": "Passed", - "queued_duration": 13.554132, - "started_at": "2026-01-19T11:54:11Z", - "updated_at": "2026-01-19T11:55:15Z", - "job_id": 26603, - "duration_seconds": 64 - }, - { - "language": "lua", - "status": "Passed", - "queued_duration": 9.164784, - "started_at": "2026-01-19T11:54:06Z", - "updated_at": "2026-01-19T11:55:09Z", - "job_id": 26595, - "duration_seconds": 63 - }, - { - "language": "fortran", - "status": "Passed", - "queued_duration": 78.696102, - "started_at": "2026-01-19T11:55:18Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26617, - "duration_seconds": 63 - }, - { - "language": "deno", - "status": "Passed", - "queued_duration": 17.233968, - "started_at": "2026-01-19T11:54:14Z", - "updated_at": "2026-01-19T11:55:16Z", - "job_id": 26607, - "duration_seconds": 62 - }, - { - "language": "zig", - "status": "Passed", - "queued_duration": 79.584999, - "started_at": "2026-01-19T11:55:19Z", - "updated_at": "2026-01-19T11:56:20Z", - "job_id": 26619, - "duration_seconds": 61 - }, - { - "language": "tcl", - "status": "Passed", - "queued_duration": 11.908211, - "started_at": "2026-01-19T11:54:09Z", - "updated_at": "2026-01-19T11:55:10Z", - "job_id": 26600, - "duration_seconds": 61 - }, - { - "language": "crystal", - "status": "Passed", - "queued_duration": 14.494458, - "started_at": "2026-01-19T11:54:12Z", - "updated_at": "2026-01-19T11:55:13Z", - "job_id": 26605, - "duration_seconds": 61 - }, - { - "language": "cobol", - "status": "Passed", - "queued_duration": 78.300729, - "started_at": "2026-01-19T11:55:18Z", - "updated_at": "2026-01-19T11:56:19Z", - "job_id": 26616, - "duration_seconds": 61 - }, - { - "language": "groovy", - "status": "Passed", - "queued_duration": 15.033222, - "started_at": "2026-01-19T11:54:13Z", - "updated_at": "2026-01-19T11:55:13Z", - "job_id": 26606, - "duration_seconds": 60 - }, - { - "language": "commonlisp", - "status": "Passed", - "queued_duration": 14.101414, - "started_at": "2026-01-19T11:54:12Z", - "updated_at": "2026-01-19T11:55:12Z", - "job_id": 26604, - "duration_seconds": 60 - }, - { - "language": "bash", - "status": "Passed", - "queued_duration": 9.608039, - "started_at": "2026-01-19T11:54:07Z", - "updated_at": "2026-01-19T11:55:07Z", - "job_id": 26596, - "duration_seconds": 60 - }, - { - "language": "objc", - "status": "Passed", - "queued_duration": 81.357562, - "started_at": "2026-01-19T11:55:21Z", - "updated_at": "2026-01-19T11:56:19Z", - "job_id": 26622, - "duration_seconds": 58 - }, - { - "language": "julia", - "status": "Passed", - "queued_duration": 82.451682, - "started_at": "2026-01-19T11:55:23Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26624, - "duration_seconds": 58 - }, - { - "language": "haskell", - "status": "Passed", - "queued_duration": 82.941396, - "started_at": "2026-01-19T11:55:23Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26625, - "duration_seconds": 58 - }, - { - "language": "dart", - "status": "Passed", - "queued_duration": 81.955653, - "started_at": "2026-01-19T11:55:22Z", - "updated_at": "2026-01-19T11:56:20Z", - "job_id": 26623, - "duration_seconds": 58 - }, - { - "language": "fsharp", - "status": "Passed", - "queued_duration": 86.115785, - "started_at": "2026-01-19T11:55:24Z", - "updated_at": "2026-01-19T11:56:20Z", - "job_id": 26627, - "duration_seconds": 56 - }, - { - "language": "csharp", - "status": "Passed", - "queued_duration": 86.665718, - "started_at": "2026-01-19T11:55:25Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26628, - "duration_seconds": 56 - }, - { - "language": "ocaml", - "status": "Passed", - "queued_duration": 83.294764, - "started_at": "2026-01-19T11:55:24Z", - "updated_at": "2026-01-19T11:56:19Z", - "job_id": 26626, - "duration_seconds": 55 - }, - { - "language": "forth", - "status": "Passed", - "queued_duration": 84.695683, - "started_at": "2026-01-19T11:55:26Z", - "updated_at": "2026-01-19T11:56:21Z", - "job_id": 26630, - "duration_seconds": 55 - }, - { - "language": "prolog", - "status": "Passed", - "queued_duration": 85.102583, - "started_at": "2026-01-19T11:55:26Z", - "updated_at": "2026-01-19T11:56:20Z", - "job_id": 26629, - "duration_seconds": 54 - }, - { - "language": "nim", - "status": "Passed", - "queued_duration": 80.282391, - "started_at": "2026-01-19T11:55:20Z", - "updated_at": "2026-01-19T11:56:12Z", - "job_id": 26620, - "duration_seconds": 52 - }, - { - "language": "powershell", - "status": "Passed", - "queued_duration": 13.072477, - "started_at": "2026-01-19T11:54:11Z", - "updated_at": "2026-01-19T11:55:02Z", - "job_id": 26602, - "duration_seconds": 51 - }, - { - "language": "raku", - "status": "Passed", - "queued_duration": 27.540482, - "started_at": "2026-01-19T11:54:26Z", - "updated_at": "2026-01-19T11:55:16Z", - "job_id": 26609, - "duration_seconds": 50 - }, - { - "language": "awk", - "status": "Passed", - "queued_duration": 18.332367, - "started_at": "2026-01-19T11:54:15Z", - "updated_at": "2026-01-19T11:55:03Z", - "job_id": 26608, - "duration_seconds": 48 - }, - { - "language": "kotlin", - "status": "Passed", - "queued_duration": 77.794386, - "started_at": "2026-01-19T11:55:17Z", - "updated_at": "2026-01-19T11:56:02Z", - "job_id": 26615, - "duration_seconds": 45 - }, - { - "language": "d", - "status": "Passed", - "queued_duration": 79.191204, - "started_at": "2026-01-19T11:55:19Z", - "updated_at": "2026-01-19T11:56:01Z", - "job_id": 26618, - "duration_seconds": 42 - }, - { - "language": "v", - "status": "Passed", - "queued_duration": 80.842087, - "started_at": "2026-01-19T11:55:21Z", - "updated_at": "2026-01-19T11:56:01Z", - "job_id": 26621, - "duration_seconds": 40 - } -] -} diff --git a/reports/4.2.3/perf.md b/reports/4.2.3/perf.md deleted file mode 100644 index d61ec0c..0000000 --- a/reports/4.2.3/perf.md +++ /dev/null @@ -1,145 +0,0 @@ -# Performance Report: 4.2.3 - -**Generated:** 2026-01-19T11:58:45Z -**Pipeline:** [#11252](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/11252) - -## Summary - -| Metric | Value | -|--------|-------| -| Total Tests | 642 | -| Passed | 642 | -| Failed | 0 | -| Pass Rate | 100.0% | -| Languages | 42 | -| Avg Duration | 63s | -| Slowest | rust (142s) | -| Fastest | v (40s) | - ---- - -## 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:** -- **RUST** and **C** are outliers at 90+ seconds -- Most languages cluster between 20-40 seconds -- Compiled languages (red) tend to be faster than interpreted (blue) -- **V** is the fastest at 40 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 (rust, c) - ---- - -## Speed Leaders - -Side-by-side comparison of the 10 slowest and 10 fastest languages. - -![Speed Leaders](chart-speed-leaders.png) - -**Slowest (left):** RUST, C, PYTHON, TYPESCRIPT, JAVASCRIPT -**Fastest (right):** V, D, KOTLIN, AWK, RAKU - ---- - -## 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 - rust and c 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 | -|----------|--------|----------| -| rust | Passed | 142s | -| c | Passed | 107s | -| python | Passed | 78s | -| typescript | Passed | 75s | -| javascript | Passed | 75s | -| ruby | Passed | 74s | -| go | Passed | 74s | -| php | Passed | 70s | -| cpp | Passed | 70s | -| elixir | Passed | 69s | -| erlang | Passed | 68s | -| java | Passed | 67s | -| perl | Passed | 66s | -| scheme | Passed | 65s | -| r | Passed | 64s | -| clojure | Passed | 64s | -| lua | Passed | 63s | -| fortran | Passed | 63s | -| deno | Passed | 62s | -| zig | Passed | 61s | -| tcl | Passed | 61s | -| crystal | Passed | 61s | -| cobol | Passed | 61s | -| groovy | Passed | 60s | -| commonlisp | Passed | 60s | -| bash | Passed | 60s | -| objc | Passed | 58s | -| julia | Passed | 58s | -| haskell | Passed | 58s | -| dart | Passed | 58s | -| fsharp | Passed | 56s | -| csharp | Passed | 56s | -| ocaml | Passed | 55s | -| forth | Passed | 55s | -| prolog | Passed | 54s | -| nim | Passed | 52s | -| powershell | Passed | 51s | -| raku | Passed | 50s | -| awk | Passed | 48s | -| kotlin | Passed | 45s | -| d | Passed | 42s | -| v | Passed | 40s | - ---- - -*Report generated by UN Inception CI pipeline* diff --git a/reports/4.2.4/chart-category-comparison.png b/reports/4.2.4/chart-category-comparison.png deleted file mode 100644 index 9efd7d1..0000000 Binary files a/reports/4.2.4/chart-category-comparison.png and /dev/null differ diff --git a/reports/4.2.4/chart-dashboard.png b/reports/4.2.4/chart-dashboard.png deleted file mode 100644 index 3cf2fd7..0000000 Binary files a/reports/4.2.4/chart-dashboard.png and /dev/null differ diff --git a/reports/4.2.4/chart-duration-by-language.png b/reports/4.2.4/chart-duration-by-language.png deleted file mode 100644 index fafeb16..0000000 Binary files a/reports/4.2.4/chart-duration-by-language.png and /dev/null differ diff --git a/reports/4.2.4/chart-duration-histogram.png b/reports/4.2.4/chart-duration-histogram.png deleted file mode 100644 index ea261cf..0000000 Binary files a/reports/4.2.4/chart-duration-histogram.png and /dev/null differ diff --git a/reports/4.2.4/chart-queue-vs-execution.png b/reports/4.2.4/chart-queue-vs-execution.png deleted file mode 100644 index b7dc02e..0000000 Binary files a/reports/4.2.4/chart-queue-vs-execution.png and /dev/null differ diff --git a/reports/4.2.4/chart-speed-leaders.png b/reports/4.2.4/chart-speed-leaders.png deleted file mode 100644 index d7dfb36..0000000 Binary files a/reports/4.2.4/chart-speed-leaders.png and /dev/null differ diff --git a/reports/4.2.4/perf.json b/reports/4.2.4/perf.json deleted file mode 100644 index 740b2c1..0000000 --- a/reports/4.2.4/perf.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "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 - } -] -} diff --git a/reports/4.2.4/perf.md b/reports/4.2.4/perf.md deleted file mode 100644 index 91c3945..0000000 --- a/reports/4.2.4/perf.md +++ /dev/null @@ -1,145 +0,0 @@ -# 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* diff --git a/reports/4.2.5/chart-category-comparison.png b/reports/4.2.5/chart-category-comparison.png deleted file mode 100644 index 13718f3..0000000 Binary files a/reports/4.2.5/chart-category-comparison.png and /dev/null differ diff --git a/reports/4.2.5/chart-dashboard.png b/reports/4.2.5/chart-dashboard.png deleted file mode 100644 index 65377e2..0000000 Binary files a/reports/4.2.5/chart-dashboard.png and /dev/null differ diff --git a/reports/4.2.5/chart-duration-by-language.png b/reports/4.2.5/chart-duration-by-language.png deleted file mode 100644 index 38510dc..0000000 Binary files a/reports/4.2.5/chart-duration-by-language.png and /dev/null differ diff --git a/reports/4.2.5/chart-duration-histogram.png b/reports/4.2.5/chart-duration-histogram.png deleted file mode 100644 index a9e32b8..0000000 Binary files a/reports/4.2.5/chart-duration-histogram.png and /dev/null differ diff --git a/reports/4.2.5/chart-queue-vs-execution.png b/reports/4.2.5/chart-queue-vs-execution.png deleted file mode 100644 index cb36e9d..0000000 Binary files a/reports/4.2.5/chart-queue-vs-execution.png and /dev/null differ diff --git a/reports/4.2.5/chart-speed-leaders.png b/reports/4.2.5/chart-speed-leaders.png deleted file mode 100644 index f87d958..0000000 Binary files a/reports/4.2.5/chart-speed-leaders.png and /dev/null differ diff --git a/reports/4.2.5/perf.json b/reports/4.2.5/perf.json deleted file mode 100644 index 93d1d43..0000000 --- a/reports/4.2.5/perf.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "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 - } -] -} diff --git a/reports/4.2.5/perf.md b/reports/4.2.5/perf.md deleted file mode 100644 index c4679d2..0000000 --- a/reports/4.2.5/perf.md +++ /dev/null @@ -1,145 +0,0 @@ -# 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). - -![Duration by Language](chart-duration-by-language.png) - -**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.). - -![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 (v, haskell) - ---- - -## Speed Leaders - -Side-by-side comparison of the 10 slowest and 10 fastest languages. - -![Speed Leaders](chart-speed-leaders.png) - -**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. - -![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 - v and haskell 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 | -|----------|--------|----------| -| 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* diff --git a/reports/4.2.6/chart-category-comparison.png b/reports/4.2.6/chart-category-comparison.png deleted file mode 100644 index 85c2cda..0000000 Binary files a/reports/4.2.6/chart-category-comparison.png and /dev/null differ diff --git a/reports/4.2.6/chart-dashboard.png b/reports/4.2.6/chart-dashboard.png deleted file mode 100644 index 836e6c4..0000000 Binary files a/reports/4.2.6/chart-dashboard.png and /dev/null differ diff --git a/reports/4.2.6/chart-duration-by-language.png b/reports/4.2.6/chart-duration-by-language.png deleted file mode 100644 index 7439b70..0000000 Binary files a/reports/4.2.6/chart-duration-by-language.png and /dev/null differ diff --git a/reports/4.2.6/chart-duration-histogram.png b/reports/4.2.6/chart-duration-histogram.png deleted file mode 100644 index c49c3d4..0000000 Binary files a/reports/4.2.6/chart-duration-histogram.png and /dev/null differ diff --git a/reports/4.2.6/chart-queue-vs-execution.png b/reports/4.2.6/chart-queue-vs-execution.png deleted file mode 100644 index ab60ccf..0000000 Binary files a/reports/4.2.6/chart-queue-vs-execution.png and /dev/null differ diff --git a/reports/4.2.6/chart-speed-leaders.png b/reports/4.2.6/chart-speed-leaders.png deleted file mode 100644 index dc307ba..0000000 Binary files a/reports/4.2.6/chart-speed-leaders.png and /dev/null differ diff --git a/reports/4.2.6/perf.json b/reports/4.2.6/perf.json deleted file mode 100644 index 6985290..0000000 --- a/reports/4.2.6/perf.json +++ /dev/null @@ -1,398 +0,0 @@ -{ - "tag": "4.2.6", - "generated_at": "2026-01-19T20:22:16Z", - "parent_pipeline_id": 11361, - "child_pipeline_id": 11363, - "summary": { - "total_tests": 642, - "passed_tests": 642, - "failed_tests": 0, - "total_languages": 42, - "passed_languages": 42, - "avg_duration_seconds": 54, - "max_duration_seconds": 128, - "min_duration_seconds": 23, - "slowest_language": "haskell", - "fastest_language": "awk" - }, - "languages": [ - { - "language": "haskell", - "status": "Passed", - "queued_duration": 57.927747, - "started_at": "2026-01-19T20:18:56Z", - "updated_at": "2026-01-19T20:21:04Z", - "job_id": 27246, - "duration_seconds": 128 - }, - { - "language": "go", - "status": "Passed", - "queued_duration": 42.595107, - "started_at": "2026-01-19T20:18:39Z", - "updated_at": "2026-01-19T20:20:26Z", - "job_id": 27233, - "duration_seconds": 107 - }, - { - "language": "cpp", - "status": "Passed", - "queued_duration": 41.801062, - "started_at": "2026-01-19T20:18:38Z", - "updated_at": "2026-01-19T20:20:11Z", - "job_id": 27232, - "duration_seconds": 93 - }, - { - "language": "rust", - "status": "Passed", - "queued_duration": 43.071671, - "started_at": "2026-01-19T20:18:40Z", - "updated_at": "2026-01-19T20:20:11Z", - "job_id": 27234, - "duration_seconds": 91 - }, - { - "language": "forth", - "status": "Passed", - "queued_duration": 110.897751, - "started_at": "2026-01-19T20:19:49Z", - "updated_at": "2026-01-19T20:21:04Z", - "job_id": 27251, - "duration_seconds": 75 - }, - { - "language": "c", - "status": "Passed", - "queued_duration": 38.945258, - "started_at": "2026-01-19T20:18:35Z", - "updated_at": "2026-01-19T20:19:49Z", - "job_id": 27231, - "duration_seconds": 74 - }, - { - "language": "java", - "status": "Passed", - "queued_duration": 43.553539, - "started_at": "2026-01-19T20:18:40Z", - "updated_at": "2026-01-19T20:19:50Z", - "job_id": 27235, - "duration_seconds": 70 - }, - { - "language": "kotlin", - "status": "Passed", - "queued_duration": 44.384108, - "started_at": "2026-01-19T20:18:41Z", - "updated_at": "2026-01-19T20:19:50Z", - "job_id": 27236, - "duration_seconds": 69 - }, - { - "language": "cobol", - "status": "Passed", - "queued_duration": 48.393788, - "started_at": "2026-01-19T20:18:45Z", - "updated_at": "2026-01-19T20:19:51Z", - "job_id": 27237, - "duration_seconds": 66 - }, - { - "language": "fortran", - "status": "Passed", - "queued_duration": 50.644676, - "started_at": "2026-01-19T20:18:48Z", - "updated_at": "2026-01-19T20:19:50Z", - "job_id": 27238, - "duration_seconds": 62 - }, - { - "language": "csharp", - "status": "Passed", - "queued_duration": 59.39955, - "started_at": "2026-01-19T20:18:58Z", - "updated_at": "2026-01-19T20:19:59Z", - "job_id": 27249, - "duration_seconds": 61 - }, - { - "language": "zig", - "status": "Passed", - "queued_duration": 54.806684, - "started_at": "2026-01-19T20:18:52Z", - "updated_at": "2026-01-19T20:19:51Z", - "job_id": 27240, - "duration_seconds": 59 - }, - { - "language": "prolog", - "status": "Passed", - "queued_duration": 59.831917, - "started_at": "2026-01-19T20:18:58Z", - "updated_at": "2026-01-19T20:19:57Z", - "job_id": 27250, - "duration_seconds": 59 - }, - { - "language": "v", - "status": "Passed", - "queued_duration": 55.777392, - "started_at": "2026-01-19T20:18:53Z", - "updated_at": "2026-01-19T20:19:51Z", - "job_id": 27242, - "duration_seconds": 58 - }, - { - "language": "nim", - "status": "Passed", - "queued_duration": 55.314905, - "started_at": "2026-01-19T20:18:53Z", - "updated_at": "2026-01-19T20:19:51Z", - "job_id": 27241, - "duration_seconds": 58 - }, - { - "language": "d", - "status": "Passed", - "queued_duration": 54.185143, - "started_at": "2026-01-19T20:18:51Z", - "updated_at": "2026-01-19T20:19:49Z", - "job_id": 27239, - "duration_seconds": 58 - }, - { - "language": "objc", - "status": "Passed", - "queued_duration": 56.190438, - "started_at": "2026-01-19T20:18:54Z", - "updated_at": "2026-01-19T20:19:50Z", - "job_id": 27243, - "duration_seconds": 56 - }, - { - "language": "dart", - "status": "Passed", - "queued_duration": 56.747277, - "started_at": "2026-01-19T20:18:54Z", - "updated_at": "2026-01-19T20:19:50Z", - "job_id": 27244, - "duration_seconds": 56 - }, - { - "language": "julia", - "status": "Passed", - "queued_duration": 57.479759, - "started_at": "2026-01-19T20:18:55Z", - "updated_at": "2026-01-19T20:19:49Z", - "job_id": 27245, - "duration_seconds": 54 - }, - { - "language": "typescript", - "status": "Passed", - "queued_duration": 3.646439, - "started_at": "2026-01-19T20:17:58Z", - "updated_at": "2026-01-19T20:18:51Z", - "job_id": 27212, - "duration_seconds": 53 - }, - { - "language": "ocaml", - "status": "Passed", - "queued_duration": 58.422061, - "started_at": "2026-01-19T20:18:56Z", - "updated_at": "2026-01-19T20:19:49Z", - "job_id": 27247, - "duration_seconds": 53 - }, - { - "language": "python", - "status": "Passed", - "queued_duration": 2.222805, - "started_at": "2026-01-19T20:17:56Z", - "updated_at": "2026-01-19T20:18:48Z", - "job_id": 27210, - "duration_seconds": 52 - }, - { - "language": "fsharp", - "status": "Passed", - "queued_duration": 58.949975, - "started_at": "2026-01-19T20:18:57Z", - "updated_at": "2026-01-19T20:19:49Z", - "job_id": 27248, - "duration_seconds": 52 - }, - { - "language": "javascript", - "status": "Passed", - "queued_duration": 2.898278, - "started_at": "2026-01-19T20:17:57Z", - "updated_at": "2026-01-19T20:18:47Z", - "job_id": 27211, - "duration_seconds": 50 - }, - { - "language": "ruby", - "status": "Passed", - "queued_duration": 4.776109, - "started_at": "2026-01-19T20:17:59Z", - "updated_at": "2026-01-19T20:18:47Z", - "job_id": 27213, - "duration_seconds": 48 - }, - { - "language": "php", - "status": "Passed", - "queued_duration": 7.186457, - "started_at": "2026-01-19T20:18:02Z", - "updated_at": "2026-01-19T20:18:50Z", - "job_id": 27215, - "duration_seconds": 48 - }, - { - "language": "r", - "status": "Passed", - "queued_duration": 10.194032, - "started_at": "2026-01-19T20:18:05Z", - "updated_at": "2026-01-19T20:18:52Z", - "job_id": 27218, - "duration_seconds": 47 - }, - { - "language": "perl", - "status": "Passed", - "queued_duration": 6.159775, - "started_at": "2026-01-19T20:18:01Z", - "updated_at": "2026-01-19T20:18:45Z", - "job_id": 27214, - "duration_seconds": 44 - }, - { - "language": "tcl", - "status": "Passed", - "queued_duration": 12.293658, - "started_at": "2026-01-19T20:18:08Z", - "updated_at": "2026-01-19T20:18:50Z", - "job_id": 27221, - "duration_seconds": 42 - }, - { - "language": "scheme", - "status": "Passed", - "queued_duration": 12.818309, - "started_at": "2026-01-19T20:18:08Z", - "updated_at": "2026-01-19T20:18:50Z", - "job_id": 27222, - "duration_seconds": 42 - }, - { - "language": "elixir", - "status": "Passed", - "queued_duration": 11.287902, - "started_at": "2026-01-19T20:18:06Z", - "updated_at": "2026-01-19T20:18:47Z", - "job_id": 27219, - "duration_seconds": 41 - }, - { - "language": "groovy", - "status": "Passed", - "queued_duration": 15.729057, - "started_at": "2026-01-19T20:18:12Z", - "updated_at": "2026-01-19T20:18:52Z", - "job_id": 27227, - "duration_seconds": 40 - }, - { - "language": "clojure", - "status": "Passed", - "queued_duration": 14.149206, - "started_at": "2026-01-19T20:18:10Z", - "updated_at": "2026-01-19T20:18:50Z", - "job_id": 27224, - "duration_seconds": 40 - }, - { - "language": "lua", - "status": "Passed", - "queued_duration": 7.964979, - "started_at": "2026-01-19T20:18:03Z", - "updated_at": "2026-01-19T20:18:39Z", - "job_id": 27216, - "duration_seconds": 36 - }, - { - "language": "commonlisp", - "status": "Passed", - "queued_duration": 14.698995, - "started_at": "2026-01-19T20:18:10Z", - "updated_at": "2026-01-19T20:18:45Z", - "job_id": 27225, - "duration_seconds": 35 - }, - { - "language": "bash", - "status": "Passed", - "queued_duration": 9.03205, - "started_at": "2026-01-19T20:18:04Z", - "updated_at": "2026-01-19T20:18:39Z", - "job_id": 27217, - "duration_seconds": 35 - }, - { - "language": "erlang", - "status": "Passed", - "queued_duration": 11.926415, - "started_at": "2026-01-19T20:18:07Z", - "updated_at": "2026-01-19T20:18:41Z", - "job_id": 27220, - "duration_seconds": 34 - }, - { - "language": "deno", - "status": "Passed", - "queued_duration": 16.358662, - "started_at": "2026-01-19T20:18:13Z", - "updated_at": "2026-01-19T20:18:47Z", - "job_id": 27228, - "duration_seconds": 34 - }, - { - "language": "raku", - "status": "Passed", - "queued_duration": 17.546453, - "started_at": "2026-01-19T20:18:14Z", - "updated_at": "2026-01-19T20:18:47Z", - "job_id": 27230, - "duration_seconds": 33 - }, - { - "language": "crystal", - "status": "Passed", - "queued_duration": 15.276626, - "started_at": "2026-01-19T20:18:11Z", - "updated_at": "2026-01-19T20:18:39Z", - "job_id": 27226, - "duration_seconds": 28 - }, - { - "language": "powershell", - "status": "Passed", - "queued_duration": 13.352018, - "started_at": "2026-01-19T20:18:09Z", - "updated_at": "2026-01-19T20:18:35Z", - "job_id": 27223, - "duration_seconds": 26 - }, - { - "language": "awk", - "status": "Passed", - "queued_duration": 17.13305, - "started_at": "2026-01-19T20:18:13Z", - "updated_at": "2026-01-19T20:18:36Z", - "job_id": 27229, - "duration_seconds": 23 - } -] -} diff --git a/reports/4.2.6/perf.md b/reports/4.2.6/perf.md deleted file mode 100644 index 7aab6ca..0000000 --- a/reports/4.2.6/perf.md +++ /dev/null @@ -1,145 +0,0 @@ -# Performance Report: 4.2.6 - -**Generated:** 2026-01-19T20:22:16Z -**Pipeline:** [#11363](https://git.unturf.com/engineering/unturf/un-inception/-/pipelines/11363) - -## Summary - -| Metric | Value | -|--------|-------| -| Total Tests | 642 | -| Passed | 642 | -| Failed | 0 | -| Pass Rate | 100.0% | -| Languages | 42 | -| Avg Duration | 54s | -| Slowest | haskell (128s) | -| Fastest | awk (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:** -- **HASKELL** and **GO** are outliers at 90+ seconds -- Most languages cluster between 20-40 seconds -- Compiled languages (red) tend to be faster than interpreted (blue) -- **AWK** 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 (haskell, go) - ---- - -## Speed Leaders - -Side-by-side comparison of the 10 slowest and 10 fastest languages. - -![Speed Leaders](chart-speed-leaders.png) - -**Slowest (left):** HASKELL, GO, CPP, RUST, FORTH -**Fastest (right):** AWK, POWERSHELL, CRYSTAL, RAKU, DENO - ---- - -## 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 - haskell and go 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 | -|----------|--------|----------| -| haskell | Passed | 128s | -| go | Passed | 107s | -| cpp | Passed | 93s | -| rust | Passed | 91s | -| forth | Passed | 75s | -| c | Passed | 74s | -| java | Passed | 70s | -| kotlin | Passed | 69s | -| cobol | Passed | 66s | -| fortran | Passed | 62s | -| csharp | Passed | 61s | -| zig | Passed | 59s | -| prolog | Passed | 59s | -| v | Passed | 58s | -| nim | Passed | 58s | -| d | Passed | 58s | -| objc | Passed | 56s | -| dart | Passed | 56s | -| julia | Passed | 54s | -| typescript | Passed | 53s | -| ocaml | Passed | 53s | -| python | Passed | 52s | -| fsharp | Passed | 52s | -| javascript | Passed | 50s | -| ruby | Passed | 48s | -| php | Passed | 48s | -| r | Passed | 47s | -| perl | Passed | 44s | -| tcl | Passed | 42s | -| scheme | Passed | 42s | -| elixir | Passed | 41s | -| groovy | Passed | 40s | -| clojure | Passed | 40s | -| lua | Passed | 36s | -| commonlisp | Passed | 35s | -| bash | Passed | 35s | -| erlang | Passed | 34s | -| deno | Passed | 34s | -| raku | Passed | 33s | -| crystal | Passed | 28s | -| powershell | Passed | 26s | -| awk | Passed | 23s | - ---- - -*Report generated by UN Inception CI pipeline* diff --git a/reports/PERFORMANCE-HISTORY.md b/reports/PERFORMANCE-HISTORY.md deleted file mode 100644 index 55dc8aa..0000000 --- a/reports/PERFORMANCE-HISTORY.md +++ /dev/null @@ -1,13 +0,0 @@ -# Performance History - -Tracking compile and test execution times across releases. - -## Releases - -| Version | Date | Tests | Pass Rate | Avg Duration | Slowest | Fastest | -|---------|------|-------|-----------|--------------|---------|---------| -| 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 | -| 4.2.6 | 2026-01-19 | 642 | 100.0% | 54s | haskell | awk | diff --git a/reports/aggregated-duration-trend.png b/reports/aggregated-duration-trend.png deleted file mode 100644 index 7588f17..0000000 Binary files a/reports/aggregated-duration-trend.png and /dev/null differ diff --git a/reports/aggregated-language-variance.png b/reports/aggregated-language-variance.png deleted file mode 100644 index f0d251a..0000000 Binary files a/reports/aggregated-language-variance.png and /dev/null differ diff --git a/reports/aggregated-ranking-changes.png b/reports/aggregated-ranking-changes.png deleted file mode 100644 index 8e0138b..0000000 Binary files a/reports/aggregated-ranking-changes.png and /dev/null differ