|
1 | 1 | # Benchmark test between Sisk and ASP.NET
|
2 | 2 |
|
3 |
| - [Host] : .NET 6.0.16 (6.0.1623.17311), X64 RyuJIT AVX2 |
4 |
| - DefaultJob : .NET 6.0.16 (6.0.1623.17311), X64 RyuJIT AVX2 |
| 3 | +The tests below were performed to improve the quality of Sisk. All tests are reproducible and were run on a personal machine and not a server. I will soon add tests on a production server. |
5 | 4 |
|
6 |
| -| Method | Mean | Error | StdDev | |
7 |
| -|-------------- |---------:|--------:|--------:| |
8 |
| -| AspNetMinimal | 101.9 us | 1.13 us | 0.95 us | |
9 |
| -| SiskDotNet | 108.4 us | 1.50 us | 1.40 us | |
10 |
| -| SiskBFlat | 109.9 us | 1.58 us | 1.48 us | |
| 5 | +Both applications were compiled in RELEASE and return a plain "Hello, world!". The K6 version used in these tests was v0.46.0. |
11 | 6 |
|
12 |
| -Both HTTP servers was configured to return an plain `Hello, world!`. |
| 7 | +Sisk could handle 44.029 requests per second while ASP.NET got 51.766, using their Kestrel socket implementation. Sisk does uses HttpListener. Sisk is around 15%-20% slower than ASP.NET/Kestrel. We need to improve it. |
13 | 8 |
|
14 |
| -ASP.NET project is using Kestrel. |
| 9 | +## Benchmark.NET |
| 10 | + |
| 11 | +``` |
| 12 | +BenchmarkDotNet v0.13.7, Windows 11 (10.0.22631.2861) |
| 13 | +Intel Core i3-10105F CPU 3.70GHz, 1 CPU, 8 logical and 4 physical cores |
| 14 | +.NET SDK 8.0.100 |
| 15 | + [Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2 |
| 16 | + DefaultJob : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2 |
| 17 | +``` |
| 18 | + |
| 19 | +| Framework | Mean | StdDev | StdErr | Op/s | |
| 20 | +|-------------- |----------:|---------:|---------:|---------:| |
| 21 | +| AspNetMinimal | 96.64 us | 0.380 us | 0.095 us | 10,348.1 | |
| 22 | +| SiskDotNet | 110.36 us | 0.383 us | 0.099 us | 9,061.4 | |
| 23 | + |
| 24 | +## K6 |
| 25 | + |
| 26 | +Sisk: |
| 27 | + |
| 28 | +``` |
| 29 | + scenarios: (100.00%) 1 scenario, 500 max VUs, 1m0s max duration (incl. graceful stop): |
| 30 | + * default: 500 looping VUs for 30s (gracefulStop: 30s) |
| 31 | +
|
| 32 | +
|
| 33 | + data_received..................: 246 MB 8.2 MB/s |
| 34 | + data_sent......................: 106 MB 3.5 MB/s |
| 35 | + http_req_blocked...............: avg=7.84µs min=0s med=0s max=70.35ms p(90)=0s p(95)=0s |
| 36 | + http_req_connecting............: avg=3.88µs min=0s med=0s max=22.57ms p(90)=0s p(95)=0s |
| 37 | + http_req_duration..............: avg=11.18ms min=0s med=10.53ms max=111.62ms p(90)=15.34ms p(95)=18.64ms |
| 38 | + { expected_response:true }...: avg=11.18ms min=0s med=10.53ms max=111.62ms p(90)=15.34ms p(95)=18.64ms |
| 39 | + http_req_failed................: 0.00% ✓ 0 ✗ 1321362 |
| 40 | + http_req_receiving.............: avg=41.89µs min=0s med=0s max=93.87ms p(90)=0s p(95)=0s |
| 41 | + http_req_sending...............: avg=15.95µs min=0s med=0s max=88.68ms p(90)=0s p(95)=0s |
| 42 | + http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s |
| 43 | + http_req_waiting...............: avg=11.12ms min=0s med=10.52ms max=81.43ms p(90)=15.27ms p(95)=18.51ms |
| 44 | + http_reqs......................: 1321362 44029.579878/s |
| 45 | + iteration_duration.............: avg=11.31ms min=0s med=10.58ms max=111.62ms p(90)=15.55ms p(95)=19.48ms |
| 46 | + iterations.....................: 1321362 44029.579878/s |
| 47 | + vus............................: 500 min=500 max=500 |
| 48 | + vus_max........................: 500 min=500 max=500 |
| 49 | +``` |
| 50 | + |
| 51 | +ASP.NET Minimal: |
| 52 | + |
| 53 | +``` |
| 54 | + scenarios: (100.00%) 1 scenario, 500 max VUs, 1m0s max duration (incl. graceful stop): |
| 55 | + * default: 500 looping VUs for 30s (gracefulStop: 30s) |
| 56 | +
|
| 57 | +
|
| 58 | + data_received..................: 255 MB 8.5 MB/s |
| 59 | + data_sent......................: 124 MB 4.1 MB/s |
| 60 | + http_req_blocked...............: avg=105.19µs min=0s med=0s max=537.38ms p(90)=0s p(95)=0s |
| 61 | + http_req_connecting............: avg=97.47µs min=0s med=0s max=530.34ms p(90)=0s p(95)=0s |
| 62 | + http_req_duration..............: avg=9.03ms min=0s med=8.52ms max=306.34ms p(90)=11.24ms p(95)=14.81ms |
| 63 | + { expected_response:true }...: avg=9.03ms min=0s med=8.52ms max=306.34ms p(90)=11.24ms p(95)=14.81ms |
| 64 | + http_req_failed................: 0.00% ✓ 0 ✗ 1553207 |
| 65 | + http_req_receiving.............: avg=48.53µs min=0s med=0s max=296.69ms p(90)=0s p(95)=0s |
| 66 | + http_req_sending...............: avg=20.31µs min=0s med=0s max=86.06ms p(90)=0s p(95)=0s |
| 67 | + http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s |
| 68 | + http_req_waiting...............: avg=8.96ms min=0s med=8.52ms max=196.61ms p(90)=11.14ms p(95)=14.49ms |
| 69 | + http_reqs......................: 1553207 51766.383908/s |
| 70 | + iteration_duration.............: avg=9.56ms min=0s med=8.52ms max=566.56ms p(90)=11.68ms p(95)=16.93ms |
| 71 | + iterations.....................: 1553207 51766.383908/s |
| 72 | + vus............................: 500 min=500 max=500 |
| 73 | + vus_max........................: 500 min=500 max=500 |
| 74 | +``` |
0 commit comments