From 758c775a64960f778fe0b136cecf1b45c31d1a8a Mon Sep 17 00:00:00 2001 From: zoujiaqing Date: Thu, 17 Sep 2026 01:23:53 +0800 Subject: [PATCH 1/5] neton: update to 1.0.0-beta18 and Hyper4k 0.9.2 --- frameworks/neton/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/neton/build.gradle.kts b/frameworks/neton/build.gradle.kts index 480fa398c..6dcc515e9 100644 --- a/frameworks/neton/build.gradle.kts +++ b/frameworks/neton/build.gradle.kts @@ -10,7 +10,7 @@ repositories { // One published coordinate. `neton` brings core + logging + http + routing and // the hyper4k engine, so the arena entry builds from Maven exactly like any // other application would — no source checkout, no composite build. -val netonVersion = "1.0.0-beta17" +val netonVersion = "1.0.0-beta18" kotlin { // The arena builds linuxX64; macosArm64 is here so the endpoints can be From a5977fdcd8a462002837e484597b85f56aac12b0 Mon Sep 17 00:00:00 2001 From: zoujiaqing Date: Fri, 18 Sep 2026 16:31:48 +0800 Subject: [PATCH 2/5] neton: update to 1.0.0-beta19 and Hyper4k 0.9.3 --- frameworks/neton/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/neton/build.gradle.kts b/frameworks/neton/build.gradle.kts index 6dcc515e9..48de9f152 100644 --- a/frameworks/neton/build.gradle.kts +++ b/frameworks/neton/build.gradle.kts @@ -10,7 +10,7 @@ repositories { // One published coordinate. `neton` brings core + logging + http + routing and // the hyper4k engine, so the arena entry builds from Maven exactly like any // other application would — no source checkout, no composite build. -val netonVersion = "1.0.0-beta18" +val netonVersion = "1.0.0-beta19" kotlin { // The arena builds linuxX64; macosArm64 is here so the endpoints can be From a20e1fec17a7dda22d0282f45b50057c9bb2caff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 18 Sep 2026 09:09:35 +0000 Subject: [PATCH 3/5] Benchmark results: neton [skip ci] --- site/data/results/neton.json | 346 +++++++++--------- site/static/logs/8gbit/512/neton.log | 2 +- site/static/logs/async-db/1024/neton.log | 2 +- site/static/logs/async/32000/neton.log | 2 +- site/static/logs/baseline-h2/1024/neton.log | 4 +- site/static/logs/baseline-h2/256/neton.log | 2 +- site/static/logs/baseline-h2c/1024/neton.log | 2 +- site/static/logs/baseline-h2c/256/neton.log | 2 +- site/static/logs/baseline-h2c/4096/neton.log | 2 +- site/static/logs/baseline/4096/neton.log | 4 +- site/static/logs/fortunes/1024/neton.log | 2 +- site/static/logs/json-comp/16384/neton.log | 2 +- site/static/logs/json-comp/4096/neton.log | 2 +- site/static/logs/json-h2c/1024/neton.log | 2 +- site/static/logs/json-h2c/4096/neton.log | 4 +- site/static/logs/json-tls/4096/neton.log | 2 +- site/static/logs/latency-10k/1024/neton.log | 4 +- site/static/logs/latency-1m/1024/neton.log | 4 +- .../logs/latency-500k-8cpu/1024/neton.log | 4 +- site/static/logs/limited-conn/4096/neton.log | 4 +- site/static/logs/pipelined/4096/neton.log | 4 +- site/static/logs/static-h2/1024/neton.log | 2 +- site/static/logs/static-h2/256/neton.log | 2 +- site/static/logs/static-tls/1024/neton.log | 4 +- 24 files changed, 205 insertions(+), 205 deletions(-) diff --git a/site/data/results/neton.json b/site/data/results/neton.json index 45d4a0dba..b3673b874 100644 --- a/site/data/results/neton.json +++ b/site/data/results/neton.json @@ -4,44 +4,44 @@ "8gbit-512": { "framework": "neton", "language": "Kotlin", - "rps": 49120, - "avg_latency": "349.3us", - "p99_latency": "9676.0us", - "cpu": "563.5%", + "rps": 49176, + "avg_latency": "361.2us", + "p99_latency": "10364.0us", + "cpu": "522.5%", "memory": "1.1GiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "508.84MB/s", - "input_bw": "479.69MB/s", + "bandwidth": "509.41MB/s", + "input_bw": "480.23MB/s", "reconnects": 0, - "status_2xx": 245731, + "status_2xx": 246004, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 27872235, - "cpu_per_req_us": 113.4258, + "cpu_usec": 28472349, + "cpu_per_req_us": 115.7394, "target_rate": 50000, - "rate_ratio": 0.9824, - "p99_9_latency": "17560.0us" + "rate_ratio": 0.9835, + "p99_9_latency": "17800.0us" }, "async-32000": { "framework": "neton", "language": "Kotlin", - "rps": 106325, - "avg_latency": "84.73ms", - "p99_latency": "92.20ms", - "cpu": "728.5%", + "rps": 108129, + "avg_latency": "89.80ms", + "p99_latency": "114.20ms", + "cpu": "728.4%", "memory": "1.4GiB", "connections": 32000, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "11.96MB/s", - "input_bw": "4.87MB/s", + "bandwidth": "12.17MB/s", + "input_bw": "4.95MB/s", "reconnects": 0, - "status_2xx": 1063250, + "status_2xx": 1081292, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -49,19 +49,19 @@ "async-db-1024": { "framework": "neton", "language": "Kotlin", - "rps": 25850, - "avg_latency": "37.63ms", + "rps": 25147, + "avg_latency": "38.70ms", "p99_latency": "52.00ms", - "cpu": "1267.9%", - "memory": "1.3GiB", + "cpu": "1237.9%", + "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "99.89MB/s", - "input_bw": "1.73MB/s", - "reconnects": 10122, - "status_2xx": 258500, + "bandwidth": "97.27MB/s", + "input_bw": "1.68MB/s", + "reconnects": 9474, + "status_2xx": 251470, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -69,19 +69,19 @@ "baseline-4096": { "framework": "neton", "language": "Kotlin", - "rps": 562753, - "avg_latency": "2.29ms", - "p99_latency": "14.90ms", - "cpu": "5231.0%", + "rps": 616500, + "avg_latency": "2.21ms", + "p99_latency": "11.10ms", + "cpu": "5874.4%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "63.31MB/s", - "input_bw": "43.47MB/s", + "bandwidth": "69.36MB/s", + "input_bw": "47.62MB/s", "reconnects": 0, - "status_2xx": 2813766, + "status_2xx": 3082504, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -89,18 +89,18 @@ "baseline-h2-1024": { "framework": "neton", "language": "Kotlin", - "rps": 591407, - "avg_latency": "146.01ms", - "p99_latency": "524.18ms", - "cpu": "4933.7%", - "memory": "1.5GiB", + "rps": 388880, + "avg_latency": "207.13ms", + "p99_latency": "810.21ms", + "cpu": "5161.9%", + "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "14.88MB/s", + "bandwidth": "9.79MB/s", "reconnects": 0, - "status_2xx": 2992522, + "status_2xx": 1967733, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -108,18 +108,18 @@ "baseline-h2-256": { "framework": "neton", "language": "Kotlin", - "rps": 635723, - "avg_latency": "39.02ms", - "p99_latency": "145.92ms", - "cpu": "4897.9%", + "rps": 392835, + "avg_latency": "63.65ms", + "p99_latency": "210.73ms", + "cpu": "5154.7%", "memory": "1.2GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "15.87MB/s", + "bandwidth": "9.83MB/s", "reconnects": 0, - "status_2xx": 3197690, + "status_2xx": 1979892, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -127,18 +127,18 @@ "baseline-h2c-1024": { "framework": "neton", "language": "Kotlin", - "rps": 600108, - "avg_latency": "104.56ms", - "p99_latency": "502.77ms", - "cpu": "4848.2%", - "memory": "1.5GiB", + "rps": 391040, + "avg_latency": "187.70ms", + "p99_latency": "1.02s", + "cpu": "5011.2%", + "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "15.09MB/s", + "bandwidth": "9.83MB/s", "reconnects": 0, - "status_2xx": 3036548, + "status_2xx": 1974756, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -146,18 +146,18 @@ "baseline-h2c-256": { "framework": "neton", "language": "Kotlin", - "rps": 636388, - "avg_latency": "39.59ms", - "p99_latency": "148.53ms", - "cpu": "4852.1%", + "rps": 445591, + "avg_latency": "56.63ms", + "p99_latency": "201.09ms", + "cpu": "5206.4%", "memory": "1.2GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "15.88MB/s", + "bandwidth": "11.13MB/s", "reconnects": 0, - "status_2xx": 3201034, + "status_2xx": 2241326, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -165,18 +165,18 @@ "baseline-h2c-4096": { "framework": "neton", "language": "Kotlin", - "rps": 552883, - "avg_latency": "245.37ms", - "p99_latency": "1.49s", - "cpu": "4912.0%", - "memory": "2.0GiB", + "rps": 367411, + "avg_latency": "398.25ms", + "p99_latency": "2.00s", + "cpu": "5037.1%", + "memory": "2.4GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "14.03MB/s", + "bandwidth": "9.31MB/s", "reconnects": 0, - "status_2xx": 2814176, + "status_2xx": 1862776, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -184,18 +184,18 @@ "fortunes-1024": { "framework": "neton", "language": "Kotlin", - "rps": 12541, - "avg_latency": "74.21ms", - "p99_latency": "312.30ms", - "cpu": "2424.4%", + "rps": 11946, + "avg_latency": "76.20ms", + "p99_latency": "305.30ms", + "cpu": "2099.7%", "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "295.97MB/s", + "bandwidth": "281.95MB/s", "reconnects": 0, - "status_2xx": 62707, + "status_2xx": 59731, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -203,19 +203,19 @@ "json-comp-16384": { "framework": "neton", "language": "Kotlin", - "rps": 126091, - "avg_latency": "11.44ms", - "p99_latency": "45.00ms", - "cpu": "5903.3%", - "memory": "1.2GiB", + "rps": 132248, + "avg_latency": "8.93ms", + "p99_latency": "46.40ms", + "cpu": "5968.2%", + "memory": "1.3GiB", "connections": 16384, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "168.91MB/s", - "input_bw": "9.38MB/s", - "reconnects": 24977, - "status_2xx": 630456, + "bandwidth": "177.11MB/s", + "input_bw": "9.84MB/s", + "reconnects": 25899, + "status_2xx": 661242, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -223,19 +223,19 @@ "json-comp-4096": { "framework": "neton", "language": "Kotlin", - "rps": 121387, - "avg_latency": "9.40ms", - "p99_latency": "44.50ms", - "cpu": "6054.5%", + "rps": 132944, + "avg_latency": "6.40ms", + "p99_latency": "32.10ms", + "cpu": "6144.8%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "162.64MB/s", - "input_bw": "9.03MB/s", - "reconnects": 23678, - "status_2xx": 606936, + "bandwidth": "178.12MB/s", + "input_bw": "9.89MB/s", + "reconnects": 26221, + "status_2xx": 664722, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -243,18 +243,18 @@ "json-h2c-1024": { "framework": "neton", "language": "Kotlin", - "rps": 276731, - "avg_latency": "97.48ms", - "p99_latency": "690.88ms", - "cpu": "4442.1%", + "rps": 272910, + "avg_latency": "97.16ms", + "p99_latency": "1.10s", + "cpu": "4334.0%", "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "943.59MB/s", + "bandwidth": "932.36MB/s", "reconnects": 0, - "status_2xx": 1397495, + "status_2xx": 1380928, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -262,18 +262,18 @@ "json-h2c-4096": { "framework": "neton", "language": "Kotlin", - "rps": 256241, - "avg_latency": "326.40ms", - "p99_latency": "3.99s", - "cpu": "4191.9%", - "memory": "1.7GiB", + "rps": 260199, + "avg_latency": "302.35ms", + "p99_latency": "4.74s", + "cpu": "4120.1%", + "memory": "1.8GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "878.47MB/s", + "bandwidth": "891.21MB/s", "reconnects": 0, - "status_2xx": 1306832, + "status_2xx": 1324415, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -281,18 +281,18 @@ "json-tls-4096": { "framework": "neton", "language": "Kotlin", - "rps": 296930, - "avg_latency": "12.49ms", - "p99_latency": "97.21ms", - "cpu": "6270.8%", + "rps": 302745, + "avg_latency": "11.86ms", + "p99_latency": "94.97ms", + "cpu": "6285.2%", "memory": "1.3GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "1.01GB", + "bandwidth": "1.03GB", "reconnects": 0, - "status_2xx": 1514360, + "status_2xx": 1544277, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -300,91 +300,91 @@ "latency-10k-1024": { "framework": "neton", "language": "Kotlin", - "rps": 9693, - "avg_latency": "97.7us", - "p99_latency": "157.0us", - "cpu": "29.6%", - "memory": "498MiB", + "rps": 9595, + "avg_latency": "90.1us", + "p99_latency": "141.0us", + "cpu": "27.1%", + "memory": "382MiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "1.13MB/s", - "reconnects": 17, - "status_2xx": 193881, + "bandwidth": "1.12MB/s", + "reconnects": 177, + "status_2xx": 191926, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 6359998, - "cpu_per_req_us": 32.8036, + "cpu_usec": 5860240, + "cpu_per_req_us": 30.5339, "target_rate": 10000, - "rate_ratio": 0.9693, - "p99_9_latency": "11588.0us" + "rate_ratio": 0.9595, + "p99_9_latency": "3055.0us" }, "latency-1m-1024": { "framework": "neton", "language": "Kotlin", - "rps": 400890, - "avg_latency": "5480592.9us", - "p99_latency": "11726848.0us", - "cpu": "4812.5%", + "rps": 579670, + "avg_latency": "3787651.6us", + "p99_latency": "8120320.0us", + "cpu": "5003.0%", "memory": "1.2GiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "46.90MB/s", - "reconnects": 50, - "status_2xx": 8021498, + "bandwidth": "67.82MB/s", + "reconnects": 0, + "status_2xx": 11598605, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 950833577, - "cpu_per_req_us": 118.5357, + "cpu_usec": 1046515984, + "cpu_per_req_us": 90.2277, "target_rate": 1000000, - "rate_ratio": 0.4009, - "p99_9_latency": "11866112.0us" + "rate_ratio": 0.5797, + "p99_9_latency": "8230912.0us" }, "latency-500k-8cpu-1024": { "framework": "neton", "language": "Kotlin", - "rps": 233586, - "avg_latency": "4642401.5us", - "p99_latency": "9850880.0us", - "cpu": "774.2%", + "rps": 253890, + "avg_latency": "4701637.4us", + "p99_latency": "9564160.0us", + "cpu": "776.0%", "memory": "986MiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "27.33MB/s", - "reconnects": 201, - "status_2xx": 4673319, + "bandwidth": "29.71MB/s", + "reconnects": 0, + "status_2xx": 5079847, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 158959723, - "cpu_per_req_us": 34.0143, + "cpu_usec": 159459347, + "cpu_per_req_us": 31.3906, "target_rate": 500000, - "rate_ratio": 0.4672, - "p99_9_latency": "10039296.0us" + "rate_ratio": 0.5078, + "p99_9_latency": "9711616.0us" }, "limited-conn-4096": { "framework": "neton", "language": "Kotlin", - "rps": 520382, - "avg_latency": "1.08ms", - "p99_latency": "2.28ms", - "cpu": "2349.0%", + "rps": 533515, + "avg_latency": "451us", + "p99_latency": "2.03ms", + "cpu": "2232.8%", "memory": "1.1GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "58.54MB/s", - "input_bw": "40.20MB/s", - "reconnects": 260161, - "status_2xx": 2601913, + "bandwidth": "60.02MB/s", + "input_bw": "41.21MB/s", + "reconnects": 266850, + "status_2xx": 2667576, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -392,18 +392,18 @@ "pipelined-4096": { "framework": "neton", "language": "Kotlin", - "rps": 391942, - "avg_latency": "79.87ms", - "p99_latency": "5.00s", - "cpu": "4736.4%", + "rps": 440645, + "avg_latency": "44.33ms", + "p99_latency": "563.00ms", + "cpu": "4011.3%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 16, - "bandwidth": "44.10MB/s", + "bandwidth": "49.57MB/s", "reconnects": 0, - "status_2xx": 1959713, + "status_2xx": 2203228, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -411,18 +411,18 @@ "static-h2-1024": { "framework": "neton", "language": "Kotlin", - "rps": 265371, - "avg_latency": "103.08ms", - "p99_latency": "422.15ms", - "cpu": "3656.2%", + "rps": 262501, + "avg_latency": "100.82ms", + "p99_latency": "350.88ms", + "cpu": "3705.7%", "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "4.08GB/s", + "bandwidth": "4.04GB/s", "reconnects": 0, - "status_2xx": 1342781, + "status_2xx": 1328260, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -430,18 +430,18 @@ "static-h2-256": { "framework": "neton", "language": "Kotlin", - "rps": 357668, - "avg_latency": "22.38ms", - "p99_latency": "132.15ms", - "cpu": "5487.4%", + "rps": 327898, + "avg_latency": "24.41ms", + "p99_latency": "157.25ms", + "cpu": "5340.5%", "memory": "1.2GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "5.47GB/s", + "bandwidth": "5.01GB/s", "reconnects": 0, - "status_2xx": 1799073, + "status_2xx": 1649329, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -449,10 +449,10 @@ "static-tls-1024": { "framework": "neton", "language": "Kotlin", - "rps": 384347, - "avg_latency": "3.24ms", - "p99_latency": "52.39ms", - "cpu": "6300.2%", + "rps": 384419, + "avg_latency": "3.20ms", + "p99_latency": "50.14ms", + "cpu": "6233.0%", "memory": "1.2GiB", "connections": 1024, "threads": 64, @@ -460,7 +460,7 @@ "pipeline": 1, "bandwidth": "5.90GB", "reconnects": 0, - "status_2xx": 1959926, + "status_2xx": 1960391, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/static/logs/8gbit/512/neton.log b/site/static/logs/8gbit/512/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/8gbit/512/neton.log +++ b/site/static/logs/8gbit/512/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/async-db/1024/neton.log b/site/static/logs/async-db/1024/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/async-db/1024/neton.log +++ b/site/static/logs/async-db/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/async/32000/neton.log b/site/static/logs/async/32000/neton.log index 006e0c63d..69e6fde87 100644 --- a/site/static/logs/async/32000/neton.log +++ b/site/static/logs/async/32000/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2/1024/neton.log b/site/static/logs/baseline-h2/1024/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/baseline-h2/1024/neton.log +++ b/site/static/logs/baseline-h2/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/baseline-h2/256/neton.log b/site/static/logs/baseline-h2/256/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/baseline-h2/256/neton.log +++ b/site/static/logs/baseline-h2/256/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2c/1024/neton.log b/site/static/logs/baseline-h2c/1024/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/baseline-h2c/1024/neton.log +++ b/site/static/logs/baseline-h2c/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2c/256/neton.log b/site/static/logs/baseline-h2c/256/neton.log index 006e0c63d..69e6fde87 100644 --- a/site/static/logs/baseline-h2c/256/neton.log +++ b/site/static/logs/baseline-h2c/256/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2c/4096/neton.log b/site/static/logs/baseline-h2c/4096/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/baseline-h2c/4096/neton.log +++ b/site/static/logs/baseline-h2c/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline/4096/neton.log b/site/static/logs/baseline/4096/neton.log index cf3f3bde7..69e6fde87 100644 --- a/site/static/logs/baseline/4096/neton.log +++ b/site/static/logs/baseline/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/fortunes/1024/neton.log b/site/static/logs/fortunes/1024/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/fortunes/1024/neton.log +++ b/site/static/logs/fortunes/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/json-comp/16384/neton.log b/site/static/logs/json-comp/16384/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/json-comp/16384/neton.log +++ b/site/static/logs/json-comp/16384/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/json-comp/4096/neton.log b/site/static/logs/json-comp/4096/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/json-comp/4096/neton.log +++ b/site/static/logs/json-comp/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/json-h2c/1024/neton.log b/site/static/logs/json-h2c/1024/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/json-h2c/1024/neton.log +++ b/site/static/logs/json-h2c/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/json-h2c/4096/neton.log b/site/static/logs/json-h2c/4096/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/json-h2c/4096/neton.log +++ b/site/static/logs/json-h2c/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/json-tls/4096/neton.log b/site/static/logs/json-tls/4096/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/json-tls/4096/neton.log +++ b/site/static/logs/json-tls/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/latency-10k/1024/neton.log b/site/static/logs/latency-10k/1024/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/latency-10k/1024/neton.log +++ b/site/static/logs/latency-10k/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/latency-1m/1024/neton.log b/site/static/logs/latency-1m/1024/neton.log index cf3f3bde7..69e6fde87 100644 --- a/site/static/logs/latency-1m/1024/neton.log +++ b/site/static/logs/latency-1m/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/latency-500k-8cpu/1024/neton.log b/site/static/logs/latency-500k-8cpu/1024/neton.log index 9ae326e5a..47536732a 100644 --- a/site/static/logs/latency-500k-8cpu/1024/neton.log +++ b/site/static/logs/latency-500k-8cpu/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 1 ms +Cold Start : 0 ms Ready → http://localhost:8080 diff --git a/site/static/logs/limited-conn/4096/neton.log b/site/static/logs/limited-conn/4096/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/limited-conn/4096/neton.log +++ b/site/static/logs/limited-conn/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/pipelined/4096/neton.log b/site/static/logs/pipelined/4096/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/pipelined/4096/neton.log +++ b/site/static/logs/pipelined/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/static-h2/1024/neton.log b/site/static/logs/static-h2/1024/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/static-h2/1024/neton.log +++ b/site/static/logs/static-h2/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/static-h2/256/neton.log b/site/static/logs/static-h2/256/neton.log index cf3f3bde7..61724d2f3 100644 --- a/site/static/logs/static-h2/256/neton.log +++ b/site/static/logs/static-h2/256/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/static-tls/1024/neton.log b/site/static/logs/static-tls/1024/neton.log index 006e0c63d..61724d2f3 100644 --- a/site/static/logs/static-tls/1024/neton.log +++ b/site/static/logs/static-tls/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta17 +Neton 1.0.0-beta19 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 From b74fa0ec9c0a90fcb6c3e6d0a399045d3a5dbad1 Mon Sep 17 00:00:00 2001 From: zoujiaqing Date: Fri, 18 Sep 2026 21:16:19 +0800 Subject: [PATCH 4/5] neton: update to beta20 and Hyper4k 0.9.4 --- frameworks/neton/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/neton/build.gradle.kts b/frameworks/neton/build.gradle.kts index 48de9f152..d92f4ee4c 100644 --- a/frameworks/neton/build.gradle.kts +++ b/frameworks/neton/build.gradle.kts @@ -10,7 +10,7 @@ repositories { // One published coordinate. `neton` brings core + logging + http + routing and // the hyper4k engine, so the arena entry builds from Maven exactly like any // other application would — no source checkout, no composite build. -val netonVersion = "1.0.0-beta19" +val netonVersion = "1.0.0-beta20" kotlin { // The arena builds linuxX64; macosArm64 is here so the endpoints can be From 797dc508582fbe19b4ee066b211022214c880daa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 18 Sep 2026 17:36:29 +0000 Subject: [PATCH 5/5] Benchmark results: neton [skip ci] --- site/data/frameworks.json | 8 +- site/data/results/neton.json | 346 +++++++++--------- site/static/logs/8gbit/512/neton.log | 4 +- site/static/logs/async-db/1024/neton.log | 2 +- site/static/logs/async/32000/neton.log | 4 +- site/static/logs/baseline-h2/1024/neton.log | 4 +- site/static/logs/baseline-h2/256/neton.log | 2 +- site/static/logs/baseline-h2c/1024/neton.log | 2 +- site/static/logs/baseline-h2c/256/neton.log | 4 +- site/static/logs/baseline-h2c/4096/neton.log | 2 +- site/static/logs/baseline/4096/neton.log | 4 +- site/static/logs/fortunes/1024/neton.log | 2 +- site/static/logs/json-comp/16384/neton.log | 4 +- site/static/logs/json-comp/4096/neton.log | 4 +- site/static/logs/json-h2c/1024/neton.log | 4 +- site/static/logs/json-h2c/4096/neton.log | 4 +- site/static/logs/json-tls/4096/neton.log | 2 +- site/static/logs/latency-10k/1024/neton.log | 4 +- site/static/logs/latency-1m/1024/neton.log | 2 +- .../logs/latency-500k-8cpu/1024/neton.log | 2 +- site/static/logs/limited-conn/4096/neton.log | 2 +- site/static/logs/pipelined/4096/neton.log | 4 +- site/static/logs/static-h2/1024/neton.log | 2 +- site/static/logs/static-h2/256/neton.log | 4 +- site/static/logs/static-tls/1024/neton.log | 2 +- 25 files changed, 212 insertions(+), 212 deletions(-) diff --git a/site/data/frameworks.json b/site/data/frameworks.json index c628d85f0..cdb3e792e 100644 --- a/site/data/frameworks.json +++ b/site/data/frameworks.json @@ -977,9 +977,9 @@ "response": true } }, - "ktor-ghost": { - "dir": "ktor-ghost", - "description": "JetBrains Ktor 3.x on Netty with Kotlin coroutines, Ghost Serializer, JDK 21.", + "ktor-tuned": { + "dir": "ktor-tuned", + "description": "JetBrains Ktor 3.x on Netty with Ghost Serializer, JDK 25.", "repo": "https://github.com/ktorio/ktor", "type": "flagship", "engine": "netty", @@ -993,7 +993,7 @@ }, "ktor": { "dir": "ktor", - "description": "JetBrains Ktor 3.x on Netty with Kotlin coroutines, kotlinx.serialization, JDK 21.", + "description": "JetBrains Ktor 3.x on Netty with kotlinx.serialization, JDK 25.", "repo": "https://github.com/ktorio/ktor", "type": "flagship", "engine": "netty", diff --git a/site/data/results/neton.json b/site/data/results/neton.json index b3673b874..8590b2d3c 100644 --- a/site/data/results/neton.json +++ b/site/data/results/neton.json @@ -4,44 +4,44 @@ "8gbit-512": { "framework": "neton", "language": "Kotlin", - "rps": 49176, - "avg_latency": "361.2us", - "p99_latency": "10364.0us", - "cpu": "522.5%", + "rps": 48425, + "avg_latency": "356.4us", + "p99_latency": "10492.0us", + "cpu": "507.9%", "memory": "1.1GiB", "connections": 512, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "509.41MB/s", - "input_bw": "480.23MB/s", + "bandwidth": "501.64MB/s", + "input_bw": "472.90MB/s", "reconnects": 0, - "status_2xx": 246004, + "status_2xx": 242250, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 28472349, - "cpu_per_req_us": 115.7394, + "cpu_usec": 27228992, + "cpu_per_req_us": 112.4004, "target_rate": 50000, - "rate_ratio": 0.9835, - "p99_9_latency": "17800.0us" + "rate_ratio": 0.9685, + "p99_9_latency": "17752.0us" }, "async-32000": { "framework": "neton", "language": "Kotlin", - "rps": 108129, - "avg_latency": "89.80ms", - "p99_latency": "114.20ms", - "cpu": "728.4%", + "rps": 107207, + "avg_latency": "96.32ms", + "p99_latency": "134.40ms", + "cpu": "732.9%", "memory": "1.4GiB", "connections": 32000, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "12.17MB/s", - "input_bw": "4.95MB/s", + "bandwidth": "12.06MB/s", + "input_bw": "4.91MB/s", "reconnects": 0, - "status_2xx": 1081292, + "status_2xx": 1072071, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -49,19 +49,19 @@ "async-db-1024": { "framework": "neton", "language": "Kotlin", - "rps": 25147, + "rps": 25286, "avg_latency": "38.70ms", - "p99_latency": "52.00ms", - "cpu": "1237.9%", + "p99_latency": "52.60ms", + "cpu": "1243.1%", "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "97.27MB/s", - "input_bw": "1.68MB/s", - "reconnects": 9474, - "status_2xx": 251470, + "bandwidth": "97.75MB/s", + "input_bw": "1.69MB/s", + "reconnects": 9552, + "status_2xx": 252868, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -69,19 +69,19 @@ "baseline-4096": { "framework": "neton", "language": "Kotlin", - "rps": 616500, - "avg_latency": "2.21ms", - "p99_latency": "11.10ms", - "cpu": "5874.4%", + "rps": 656223, + "avg_latency": "1.85ms", + "p99_latency": "9.52ms", + "cpu": "5364.1%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "69.36MB/s", - "input_bw": "47.62MB/s", + "bandwidth": "73.83MB/s", + "input_bw": "50.69MB/s", "reconnects": 0, - "status_2xx": 3082504, + "status_2xx": 3281116, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -89,18 +89,18 @@ "baseline-h2-1024": { "framework": "neton", "language": "Kotlin", - "rps": 388880, - "avg_latency": "207.13ms", - "p99_latency": "810.21ms", - "cpu": "5161.9%", + "rps": 629296, + "avg_latency": "123.32ms", + "p99_latency": "479.26ms", + "cpu": "4853.3%", "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "9.79MB/s", + "bandwidth": "15.83MB/s", "reconnects": 0, - "status_2xx": 1967733, + "status_2xx": 3184242, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -108,18 +108,18 @@ "baseline-h2-256": { "framework": "neton", "language": "Kotlin", - "rps": 392835, - "avg_latency": "63.65ms", - "p99_latency": "210.73ms", - "cpu": "5154.7%", + "rps": 661829, + "avg_latency": "37.68ms", + "p99_latency": "145.75ms", + "cpu": "4858.4%", "memory": "1.2GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "9.83MB/s", + "bandwidth": "16.52MB/s", "reconnects": 0, - "status_2xx": 1979892, + "status_2xx": 3329003, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -127,18 +127,18 @@ "baseline-h2c-1024": { "framework": "neton", "language": "Kotlin", - "rps": 391040, - "avg_latency": "187.70ms", - "p99_latency": "1.02s", - "cpu": "5011.2%", + "rps": 637113, + "avg_latency": "118.78ms", + "p99_latency": "505.36ms", + "cpu": "4870.3%", "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "9.83MB/s", + "bandwidth": "15.96MB/s", "reconnects": 0, - "status_2xx": 1974756, + "status_2xx": 3211050, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -146,18 +146,18 @@ "baseline-h2c-256": { "framework": "neton", "language": "Kotlin", - "rps": 445591, - "avg_latency": "56.63ms", - "p99_latency": "201.09ms", - "cpu": "5206.4%", - "memory": "1.2GiB", + "rps": 667367, + "avg_latency": "37.47ms", + "p99_latency": "154.17ms", + "cpu": "4692.1%", + "memory": "1.3GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "11.13MB/s", + "bandwidth": "16.66MB/s", "reconnects": 0, - "status_2xx": 2241326, + "status_2xx": 3356860, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -165,18 +165,18 @@ "baseline-h2c-4096": { "framework": "neton", "language": "Kotlin", - "rps": 367411, - "avg_latency": "398.25ms", - "p99_latency": "2.00s", - "cpu": "5037.1%", - "memory": "2.4GiB", + "rps": 549590, + "avg_latency": "228.36ms", + "p99_latency": "1.30s", + "cpu": "3903.8%", + "memory": "2.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "9.31MB/s", + "bandwidth": "13.97MB/s", "reconnects": 0, - "status_2xx": 1862776, + "status_2xx": 2802914, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -184,18 +184,18 @@ "fortunes-1024": { "framework": "neton", "language": "Kotlin", - "rps": 11946, - "avg_latency": "76.20ms", - "p99_latency": "305.30ms", - "cpu": "2099.7%", + "rps": 11204, + "avg_latency": "81.96ms", + "p99_latency": "323.30ms", + "cpu": "2122.0%", "memory": "1.6GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "281.95MB/s", + "bandwidth": "264.41MB/s", "reconnects": 0, - "status_2xx": 59731, + "status_2xx": 56023, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -203,19 +203,19 @@ "json-comp-16384": { "framework": "neton", "language": "Kotlin", - "rps": 132248, - "avg_latency": "8.93ms", - "p99_latency": "46.40ms", - "cpu": "5968.2%", - "memory": "1.3GiB", + "rps": 132418, + "avg_latency": "8.25ms", + "p99_latency": "41.90ms", + "cpu": "5972.1%", + "memory": "1.2GiB", "connections": 16384, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "177.11MB/s", - "input_bw": "9.84MB/s", - "reconnects": 25899, - "status_2xx": 661242, + "bandwidth": "177.40MB/s", + "input_bw": "9.85MB/s", + "reconnects": 26027, + "status_2xx": 662092, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -223,19 +223,19 @@ "json-comp-4096": { "framework": "neton", "language": "Kotlin", - "rps": 132944, - "avg_latency": "6.40ms", - "p99_latency": "32.10ms", - "cpu": "6144.8%", + "rps": 130368, + "avg_latency": "6.28ms", + "p99_latency": "29.90ms", + "cpu": "6135.2%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "178.12MB/s", - "input_bw": "9.89MB/s", - "reconnects": 26221, - "status_2xx": 664722, + "bandwidth": "174.65MB/s", + "input_bw": "9.70MB/s", + "reconnects": 25661, + "status_2xx": 651841, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -243,18 +243,18 @@ "json-h2c-1024": { "framework": "neton", "language": "Kotlin", - "rps": 272910, - "avg_latency": "97.16ms", - "p99_latency": "1.10s", - "cpu": "4334.0%", + "rps": 280778, + "avg_latency": "98.57ms", + "p99_latency": "471.23ms", + "cpu": "4296.8%", "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "932.36MB/s", + "bandwidth": "959.35MB/s", "reconnects": 0, - "status_2xx": 1380928, + "status_2xx": 1420737, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -262,18 +262,18 @@ "json-h2c-4096": { "framework": "neton", "language": "Kotlin", - "rps": 260199, - "avg_latency": "302.35ms", - "p99_latency": "4.74s", - "cpu": "4120.1%", - "memory": "1.8GiB", + "rps": 266278, + "avg_latency": "273.20ms", + "p99_latency": "3.98s", + "cpu": "4197.4%", + "memory": "1.7GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "891.21MB/s", + "bandwidth": "908.77MB/s", "reconnects": 0, - "status_2xx": 1324415, + "status_2xx": 1350032, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -281,18 +281,18 @@ "json-tls-4096": { "framework": "neton", "language": "Kotlin", - "rps": 302745, - "avg_latency": "11.86ms", - "p99_latency": "94.97ms", - "cpu": "6285.2%", + "rps": 299158, + "avg_latency": "11.28ms", + "p99_latency": "117.25ms", + "cpu": "6168.3%", "memory": "1.3GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "1.03GB", + "bandwidth": "1.02GB", "reconnects": 0, - "status_2xx": 1544277, + "status_2xx": 1525423, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -300,91 +300,91 @@ "latency-10k-1024": { "framework": "neton", "language": "Kotlin", - "rps": 9595, - "avg_latency": "90.1us", - "p99_latency": "141.0us", - "cpu": "27.1%", - "memory": "382MiB", + "rps": 9915, + "avg_latency": "89.5us", + "p99_latency": "123.0us", + "cpu": "29.1%", + "memory": "418MiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "1.12MB/s", - "reconnects": 177, - "status_2xx": 191926, + "bandwidth": "1.16MB/s", + "reconnects": 0, + "status_2xx": 198316, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 5860240, - "cpu_per_req_us": 30.5339, + "cpu_usec": 6016703, + "cpu_per_req_us": 30.339, "target_rate": 10000, - "rate_ratio": 0.9595, - "p99_9_latency": "3055.0us" + "rate_ratio": 0.9915, + "p99_9_latency": "8002.0us" }, "latency-1m-1024": { "framework": "neton", "language": "Kotlin", - "rps": 579670, - "avg_latency": "3787651.6us", - "p99_latency": "8120320.0us", - "cpu": "5003.0%", - "memory": "1.2GiB", + "rps": 954181, + "avg_latency": "369708.2us", + "p99_latency": "739584.0us", + "cpu": "4900.0%", + "memory": "1.1GiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "67.82MB/s", + "bandwidth": "111.64MB/s", "reconnects": 0, - "status_2xx": 11598605, + "status_2xx": 19092258, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 1046515984, - "cpu_per_req_us": 90.2277, + "cpu_usec": 944032200, + "cpu_per_req_us": 49.4458, "target_rate": 1000000, - "rate_ratio": 0.5797, - "p99_9_latency": "8230912.0us" + "rate_ratio": 0.9542, + "p99_9_latency": "801536.0us" }, "latency-500k-8cpu-1024": { "framework": "neton", "language": "Kotlin", - "rps": 253890, - "avg_latency": "4701637.4us", - "p99_latency": "9564160.0us", - "cpu": "776.0%", - "memory": "986MiB", + "rps": 252788, + "avg_latency": "4761037.2us", + "p99_latency": "9646080.0us", + "cpu": "780.7%", + "memory": "988MiB", "connections": 1024, "threads": 64, "duration": "20s", "pipeline": 1, - "bandwidth": "29.71MB/s", - "reconnects": 0, - "status_2xx": 5079847, + "bandwidth": "29.58MB/s", + "reconnects": 13, + "status_2xx": 5057769, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0, - "cpu_usec": 159459347, - "cpu_per_req_us": 31.3906, + "cpu_usec": 159624621, + "cpu_per_req_us": 31.5603, "target_rate": 500000, - "rate_ratio": 0.5078, - "p99_9_latency": "9711616.0us" + "rate_ratio": 0.5056, + "p99_9_latency": "9785344.0us" }, "limited-conn-4096": { "framework": "neton", "language": "Kotlin", - "rps": 533515, - "avg_latency": "451us", - "p99_latency": "2.03ms", - "cpu": "2232.8%", + "rps": 534218, + "avg_latency": "480us", + "p99_latency": "2.15ms", + "cpu": "2228.7%", "memory": "1.1GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "60.02MB/s", - "input_bw": "41.21MB/s", - "reconnects": 266850, - "status_2xx": 2667576, + "bandwidth": "60.10MB/s", + "input_bw": "41.27MB/s", + "reconnects": 267127, + "status_2xx": 2671090, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -392,18 +392,18 @@ "pipelined-4096": { "framework": "neton", "language": "Kotlin", - "rps": 440645, - "avg_latency": "44.33ms", - "p99_latency": "563.00ms", - "cpu": "4011.3%", + "rps": 433496, + "avg_latency": "38.63ms", + "p99_latency": "550.70ms", + "cpu": "3939.8%", "memory": "1.2GiB", "connections": 4096, "threads": 64, "duration": "5s", "pipeline": 16, - "bandwidth": "49.57MB/s", + "bandwidth": "48.77MB/s", "reconnects": 0, - "status_2xx": 2203228, + "status_2xx": 2167484, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -411,18 +411,18 @@ "static-h2-1024": { "framework": "neton", "language": "Kotlin", - "rps": 262501, - "avg_latency": "100.82ms", - "p99_latency": "350.88ms", - "cpu": "3705.7%", + "rps": 263463, + "avg_latency": "106.27ms", + "p99_latency": "371.85ms", + "cpu": "3587.7%", "memory": "1.4GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "4.04GB/s", + "bandwidth": "4.05GB/s", "reconnects": 0, - "status_2xx": 1328260, + "status_2xx": 1333126, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -430,18 +430,18 @@ "static-h2-256": { "framework": "neton", "language": "Kotlin", - "rps": 327898, - "avg_latency": "24.41ms", - "p99_latency": "157.25ms", - "cpu": "5340.5%", + "rps": 356414, + "avg_latency": "22.57ms", + "p99_latency": "142.70ms", + "cpu": "5418.1%", "memory": "1.2GiB", "connections": 256, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "5.01GB/s", + "bandwidth": "5.46GB/s", "reconnects": 0, - "status_2xx": 1649329, + "status_2xx": 1796329, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 @@ -449,18 +449,18 @@ "static-tls-1024": { "framework": "neton", "language": "Kotlin", - "rps": 384419, - "avg_latency": "3.20ms", - "p99_latency": "50.14ms", - "cpu": "6233.0%", + "rps": 385625, + "avg_latency": "3.26ms", + "p99_latency": "56.56ms", + "cpu": "6212.2%", "memory": "1.2GiB", "connections": 1024, "threads": 64, "duration": "5s", "pipeline": 1, - "bandwidth": "5.90GB", + "bandwidth": "5.91GB", "reconnects": 0, - "status_2xx": 1960391, + "status_2xx": 1966467, "status_3xx": 0, "status_4xx": 0, "status_5xx": 0 diff --git a/site/static/logs/8gbit/512/neton.log b/site/static/logs/8gbit/512/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/8gbit/512/neton.log +++ b/site/static/logs/8gbit/512/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/async-db/1024/neton.log b/site/static/logs/async-db/1024/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/async-db/1024/neton.log +++ b/site/static/logs/async-db/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/async/32000/neton.log b/site/static/logs/async/32000/neton.log index 69e6fde87..5ebd1e711 100644 --- a/site/static/logs/async/32000/neton.log +++ b/site/static/logs/async/32000/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/baseline-h2/1024/neton.log b/site/static/logs/baseline-h2/1024/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/baseline-h2/1024/neton.log +++ b/site/static/logs/baseline-h2/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/baseline-h2/256/neton.log b/site/static/logs/baseline-h2/256/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/baseline-h2/256/neton.log +++ b/site/static/logs/baseline-h2/256/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2c/1024/neton.log b/site/static/logs/baseline-h2c/1024/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/baseline-h2c/1024/neton.log +++ b/site/static/logs/baseline-h2c/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline-h2c/256/neton.log b/site/static/logs/baseline-h2c/256/neton.log index 69e6fde87..5ebd1e711 100644 --- a/site/static/logs/baseline-h2c/256/neton.log +++ b/site/static/logs/baseline-h2c/256/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/baseline-h2c/4096/neton.log b/site/static/logs/baseline-h2c/4096/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/baseline-h2c/4096/neton.log +++ b/site/static/logs/baseline-h2c/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/baseline/4096/neton.log b/site/static/logs/baseline/4096/neton.log index 69e6fde87..5ebd1e711 100644 --- a/site/static/logs/baseline/4096/neton.log +++ b/site/static/logs/baseline/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 4 ms +Cold Start : 3 ms Ready → http://localhost:8080 diff --git a/site/static/logs/fortunes/1024/neton.log b/site/static/logs/fortunes/1024/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/fortunes/1024/neton.log +++ b/site/static/logs/fortunes/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/json-comp/16384/neton.log b/site/static/logs/json-comp/16384/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/json-comp/16384/neton.log +++ b/site/static/logs/json-comp/16384/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/json-comp/4096/neton.log b/site/static/logs/json-comp/4096/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/json-comp/4096/neton.log +++ b/site/static/logs/json-comp/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/json-h2c/1024/neton.log b/site/static/logs/json-h2c/1024/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/json-h2c/1024/neton.log +++ b/site/static/logs/json-h2c/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/json-h2c/4096/neton.log b/site/static/logs/json-h2c/4096/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/json-h2c/4096/neton.log +++ b/site/static/logs/json-h2c/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/json-tls/4096/neton.log b/site/static/logs/json-tls/4096/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/json-tls/4096/neton.log +++ b/site/static/logs/json-tls/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/latency-10k/1024/neton.log b/site/static/logs/latency-10k/1024/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/latency-10k/1024/neton.log +++ b/site/static/logs/latency-10k/1024/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/latency-1m/1024/neton.log b/site/static/logs/latency-1m/1024/neton.log index 69e6fde87..b03c80a73 100644 --- a/site/static/logs/latency-1m/1024/neton.log +++ b/site/static/logs/latency-1m/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/latency-500k-8cpu/1024/neton.log b/site/static/logs/latency-500k-8cpu/1024/neton.log index 47536732a..3c1b1bd50 100644 --- a/site/static/logs/latency-500k-8cpu/1024/neton.log +++ b/site/static/logs/latency-500k-8cpu/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/limited-conn/4096/neton.log b/site/static/logs/limited-conn/4096/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/limited-conn/4096/neton.log +++ b/site/static/logs/limited-conn/4096/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/pipelined/4096/neton.log b/site/static/logs/pipelined/4096/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/pipelined/4096/neton.log +++ b/site/static/logs/pipelined/4096/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/static-h2/1024/neton.log b/site/static/logs/static-h2/1024/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/static-h2/1024/neton.log +++ b/site/static/logs/static-h2/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k diff --git a/site/static/logs/static-h2/256/neton.log b/site/static/logs/static-h2/256/neton.log index 61724d2f3..b03c80a73 100644 --- a/site/static/logs/static-h2/256/neton.log +++ b/site/static/logs/static-h2/256/neton.log @@ -3,14 +3,14 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k Environment : dev Port : 8080 PID : 1 -Cold Start : 3 ms +Cold Start : 4 ms Ready → http://localhost:8080 diff --git a/site/static/logs/static-tls/1024/neton.log b/site/static/logs/static-tls/1024/neton.log index 61724d2f3..5ebd1e711 100644 --- a/site/static/logs/static-tls/1024/neton.log +++ b/site/static/logs/static-tls/1024/neton.log @@ -3,7 +3,7 @@ ░█░█░█▀▀░░█░░█░█░█░█ ░▀░▀░▀▀▀░░▀░░▀▀▀░▀░▀░ -Neton 1.0.0-beta19 +Neton 1.0.0-beta20 Kotlin/Native Runtime Adapter : Hyper4k