Skip to content

0.9.0

Compare
Choose a tag to compare
@JohannesDeml JohannesDeml released this 19 Feb 11:21
· 47 commits to master since this release
ee81961

0.9.0 - Reliable Benchmark & Remote Benchmarks 🔗

  • Add benchmark PingPongReliable for using reliable transmission (if supported by the library)
  • Add support for indefinite duration by using a negative duration value
  • Add execution-mode config to support remote benchmarking by splitting the server and client
  • Improve error handling
  • Code and folder refactoring - the naming and folder structure are final now

Changes

  • Change benchmark naming: Performance 1 -> PingPongUnreliable
  • Change benchmark naming: Performance 2 -> PingPongBatchedUnreliable

Ubuntu 20.04

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

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-YNISTP : .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=10  LaunchCount=1  UnrollFactor=1  
WarmupCount=1  Version=0.9.0  OS=Linux 5.8.0-43-generic #49~20.04.1-Ubuntu SMP Fri Feb 5 09:57:56 UTC 2021  
DateTime=02/18/2021 16:18:27  
Method Library Transmission Clients Throughput Mean Error StdDev
PingPongReliable ENet Reliable 500 90,333 msg/s 5.535 s 0.0311 s 0.0205 s
PingPongUnreliable ENet Unreliable 500 185,112 msg/s 2,701.1 ms 21.57 ms 12.83 ms
PingPongBatchedUnreliable ENet Unreliable 500 1,129,598 msg/s 442.6 ms 4.83 ms 2.87 ms
PingPongUnreliable NetCoreServer Unreliable 500 96,514 msg/s 5,180.6 ms 64.21 ms 42.47 ms
PingPongBatchedUnreliable NetCoreServer Unreliable 500 97,245 msg/s 5,141.6 ms 55.11 ms 36.45 ms
PingPongReliable LiteNetLib Reliable 500 82,804 msg/s 6.038 s 0.0671 s 0.0444 s
PingPongUnreliable LiteNetLib Unreliable 500 91,222 msg/s 5,481.2 ms 51.56 ms 34.11 ms
PingPongBatchedUnreliable LiteNetLib Unreliable 500 251,421 msg/s 1,988.7 ms 56.09 ms 33.38 ms

Results-Ubuntu20 04 1- NETCore5 0

Windows 10

To reproduce the benchmarks, run ./NetworkBenchmarkDotNet -b Essential.
Hardware Details (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.103
  [Host]     : .NET Core 5.0.3 (CoreCLR 5.0.321.7212, CoreFX 5.0.321.7212), X64 RyuJIT
  Job-ODIPRB : .NET Core 5.0.3 (CoreCLR 5.0.321.7212, CoreFX 5.0.321.7212), X64 RyuJIT

Platform=X64  Runtime=.NET Core 5.0  Concurrent=True  
Force=True  Server=True  InvocationCount=1  
IterationCount=10  LaunchCount=1  UnrollFactor=1  
WarmupCount=1  Version=0.9.0  OS=Microsoft Windows 10.0.19042  
DateTime=02/18/2021 16:18:02  
Method Library Transmission Clients Throughput Mean Error StdDev
PingPongReliable ENet Reliable 500 51,718 msg/s 9.668 s 0.1468 s 0.0768 s
PingPongUnreliable ENet Unreliable 500 93,960 msg/s 5,321.4 ms 1,040.97 ms 688.54 ms
PingPongBatchedUnreliable ENet Unreliable 500 687,775 msg/s 727.0 ms 84.13 ms 55.65 ms
PingPongUnreliable NetCoreServer Unreliable 500 72,975 msg/s 6,851.6 ms 41.01 ms 27.12 ms
PingPongBatchedUnreliable NetCoreServer Unreliable 500 78,644 msg/s 6,357.8 ms 42.78 ms 25.46 ms
PingPongReliable LiteNetLib Reliable 500 88,463 msg/s 5.652 s 0.0231 s 0.0138 s
PingPongUnreliable LiteNetLib Unreliable 500 90,985 msg/s 5,495.4 ms 30.93 ms 20.46 ms
PingPongBatchedUnreliable LiteNetLib Unreliable 500 771,852 msg/s 647.8 ms 13.48 ms 8.92 ms

Results-Windows10- NETCore5 0