https://github.com/nxrighthere/BenchmarkNet
BenchmarkNet是一个用于测试可靠的UDP网络解决方案的控制台应用程序。
特征:
- 大量客户端的异步仿真
- 在高负荷下稳定
- 简单灵活的仿真设置
- 详细的会话信息
支持的网络库:
您可以在维基页面上找到最新的基准测试结果。
怎么运行的?
每个模拟客户端都是一个异步任务,用于与服务器建立连接并处理网络事件。每个任务都有一个子任务,它也可以异步工作,以指定的时间间隔发送网络消息(默认情况下每秒15条消息)。因此,1000个模拟客户端是1000个任务,其中1000个子任务彼此独立地工作。这听起来很可怕,但任务本身的CPU使用率<1%,并且每个操作都完全是线程安全的。客户端将网络消息发送到服务器(500可靠,默认情况下1000不可靠)。服务器还会向客户端发送消息作为响应(默认情况下,每个消息48个字节)。应用程序将监视服务器和客户端如何处理数据,并实时报告其状态。
用法
运行应用程序并输入所需的参数以覆盖默认值。在基准测试运行时不要执行任何操作,并等待该过程完成。
当您要使用少于256个模拟客户端执行测试时,强烈建议将GC模式从Server GC 切换到Workstation GC。您可以在本文中找到有关不同GC模式如何工作的更多信息。
您可以使用任何数据包嗅探器来监视数据的传输方式,但可能会影响结果。
如果您想模拟糟糕的网络状况,请使用Clumsy作为理想的伴侣。