Skip to content

0.8.2

Compare
Choose a tag to compare
@JohannesDeml JohannesDeml released this 17 Feb 16:13
· 65 commits to master since this release
94182b6

0.8.2 - Reliable Messages & Quick Benchmarks 🏃‍♂️

  • Add Transmission option for testing reliable messages
  • Change InDepth benchmark to Quick benchmark. Runs with a lot less overhead and is a nice intermediate between Custom Benchmarks and the Essential benchmarks. Helps to get a grip for a Library fast with more reliable numbers than you get with a custom benchmark
  • Refactor: Use local variables for the benchmark running and listening loops
  • Refactor: Add AClient, AServer and ANetworkBenchmark for merging common functionality and avoid copy paste mistakes
  • ENet: Use unsequenced PacketFlag and Unthrottled for unreliable UDP
  • Accessibility: Make win-benchmark.bat easier to use and add documentation

Ubuntu 20.04

To reproduce the benchmarks, run ./NetworkBenchmarkDotNet -b Essential.
Detailed Benchmark Hardware

BenchmarkDotNet=v0.12.1, OS=ubuntu 20.04
Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=5.0.103
  [Host]     : .NET Core 5.0.3 (CoreCLR 5.0.321.7203, CoreFX 5.0.321.7203), X64 RyuJIT
  Job-CAYZXA : .NET Core 5.0.3 (CoreCLR 5.0.321.7203, CoreFX 5.0.321.7203), X64 RyuJIT

Platform=X64  Runtime=.NET Core 5.0  Concurrent=True  
Force=True  Server=True  InvocationCount=1  
IterationCount=20  LaunchCount=1  UnrollFactor=1  
WarmupCount=1  Version=0.8.2  OS=Linux 5.8.0-43-generic #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021  
DateTime=02/17/2021 16:22:28  
Method Library Clients Throughput Mean Error StdDev
Performance1 ENet 500 184,330 msg/s 2,712.5 ms 13.29 ms 14.77 ms
Performance2 ENet 500 1,127,749 msg/s 443.4 ms 1.91 ms 1.96 ms
Performance1 NetCoreServer 500 110,626 msg/s 4,519.7 ms 20.66 ms 21.21 ms
Performance2 NetCoreServer 500 95,698 msg/s 5,224.8 ms 15.82 ms 16.93 ms
Performance1 LiteNetLib 500 93,768 msg/s 5,332.3 ms 22.10 ms 24.57 ms
Performance2 LiteNetLib 500 259,604 msg/s 1,926.0 ms 35.52 ms 40.90 ms
Performance1 Kcp2k 500 24,551 msg/s 20,365.5 ms 290.54 ms 334.59 ms
Performance2 Kcp2k 500 124,884 msg/s 4,003.7 ms 133.17 ms 153.36 ms

PerformanceLinux

Windows 10

To reproduce the benchmarks, run ./NetworkBenchmarkDotNet -b Essential.
Detailed Benchmark Hardware (Note that this machine has a lot more performance than the linux machine)

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
AMD Ryzen 7 3700X, 1 CPU, 16 logical and 8 physical cores
.NET Core SDK=5.0.100
  [Host]     : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
  Job-KWKBOV : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT

Platform=X64  Runtime=.NET Core 5.0  Concurrent=True  
Force=True  Server=True  InvocationCount=1  
IterationCount=20  LaunchCount=1  UnrollFactor=1  
WarmupCount=1  Version=0.8.2  OS=Microsoft Windows 10.0.19042  
DateTime=02/17/2021 16:23:23  
Method Library Clients Throughput Mean Error StdDev
Performance1 ENet 500 103,408 msg/s 4,835.2 ms 273.39 ms 314.84 ms
Performance2 ENet 500 713,546 msg/s 700.7 ms 40.59 ms 46.75 ms
Performance1 NetCoreServer 500 72,938 msg/s 6,855.1 ms 36.20 ms 40.24 ms
Performance2 NetCoreServer 500 70,188 msg/s 7,123.8 ms 11.23 ms 12.02 ms
Performance1 LiteNetLib 500 101,078 msg/s 4,946.7 ms 27.74 ms 28.48 ms
Performance2 LiteNetLib 500 874,633 msg/s 571.7 ms 8.18 ms 9.42 ms
Performance1 Kcp2k 500 15,536 msg/s 32,183.3 ms 484.33 ms 538.33 ms
Performance2 Kcp2k 500 67,639 msg/s 7,392.2 ms 231.14 ms 266.18 ms

PerformanceWindows

Ubuntu 20.04 Live USB stick

To reproduce the benchmarks, run ./NetworkBenchmarkDotNet -b Essential.
Detailed Benchmark Hardware This is the windows machine as a little bonus test. Not sure how reliable a USB-Stick booted test is in the end.

BenchmarkDotNet=v0.12.1, OS=ubuntu 20.04
AMD Ryzen 7 3700X, 1 CPU, 16 logical and 8 physical cores
.NET Core SDK=5.0.103
  [Host]     : .NET Core 5.0.3 (CoreCLR 5.0.321.7203, CoreFX 5.0.321.7203), X64 RyuJIT
  Job-ZVTATC : .NET Core 5.0.3 (CoreCLR 5.0.321.7203, CoreFX 5.0.321.7203), X64 RyuJIT

Platform=X64  Runtime=.NET Core 5.0  Concurrent=True  
Force=True  Server=True  InvocationCount=1  
IterationCount=20  LaunchCount=1  UnrollFactor=1  
WarmupCount=1  Version=0.8.2  OS=Linux 5.8.0-43-generic #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021  
DateTime=02/17/2021 18:19:23  
Method Library Clients Throughput Mean Error StdDev
Performance1 ENet 500 288,441 msg/s 1,733.5 ms 10.28 ms 11.84 ms
Performance2 ENet 500 1,541,399 msg/s 324.4 ms 4.66 ms 5.36 ms
Performance1 NetCoreServer 500 124,652 msg/s 4,011.2 ms 15.85 ms 18.25 ms
Performance2 NetCoreServer 500 127,353 msg/s 3,926.1 ms 27.53 ms 31.70 ms
Performance1 LiteNetLib 500 218,786 msg/s 2,285.3 ms 19.62 ms 20.99 ms
Performance2 LiteNetLib 500 279,585 msg/s 1,788.4 ms 47.12 ms 54.27 ms
Performance1 Kcp2k 500 22,340 msg/s 22,380.9 ms 38.98 ms 43.33 ms
Performance2 Kcp2k 500 195,655 msg/s 2,555.5 ms 63.15 ms 72.72 ms