Performance

RPC Benchmarks

PurrNet has yet to do most active performance optimization on RPC's. All results seen below are prior to most attempts at bettering performance, and it should only improve for future updates.

Tests are benchmarked using the NetLimiter tool, as a neutral third party, to monitor process bandwidth for both download and upload rates. We also ensured that the Unity Editors (which this was tested within) was at 0 download and 0 upload before beginning any tests.

Tests are setup with 1 editor as a server and 1 editor as a client (made with ParrelSync). The stats shown are data accumulative for both Unity Editors.

All tests were performed in the exact same project.

Tests carried out with the following occurring every tick at a tick-rate (send rate) of 20
- Sending 100 RPC’s to every client, both with and without parameters (with randomized values).

Results & Conclusion

Mind that this only covers RPC benchmarks for now. See the Why RPC Tests section for more on that.

  • PurrNet vs. FishNet: ~49.15% lower usage
  • PurrNet vs. Mirror: ~74.18% lower usage
  • PurrNet vs Netcode: ~73.81% lower usage
  • FishNet vs. Mirror: ~49.23% lower usage
  • FishNet vs. NetCode: ~48.48% lower usage
  • Mirror vs. NetCode: ~1.44% higher usage for Mirror

Average usage

This is the average across 3 RPC tests with different data parameters. See the Raw Data results for more information on each.

System Download Upload
PurrNet 12.357 KB/s 12.357 KB/s
FishNet 24.303 KB/s 24.303 KB/s
Mirror 47.867 KB/s 47.867 KB/s
NetCode 47.187 KB/s 47.187 KB/s

Why RPC Tests?

We will do more benchmark testing in the future, however. We found RPC's to be the core functionality of every networking system, and a good common denominator to test. Different networking systems build various components for various cases, so testing specific components will easily lead to faulty points of comparisons.

Raw results

Keep in mind that every data-point was fluctuating with ~0.2 KB/s. The picture was taken when seen around the mid-point of fluctuation, but this leaves margin for small inaccuracy in comparison.

Download and Upload speed is the same, because both editors are represented. The server & the client. These numbers would differ if there was some faulty overhead on either side.

PurrNet 1.5.0

Vector3 + Quaternion + bool

Vector3

RPC Only:
\

FishNet 4.5.6R Pro

Vector3 + Quaternion + bool

Vector3

RPC Only:

Mirror 93.0.1

Vector3 + Quaternion + bool

Vector3

RPC Only:

NetCode for GameObjects 2.2.0

Vector3 + Quaternion + bool

Vector3

RPC Only