[服务端开发]C#异步Socket VS IOCP
思月行云 2011-03-08 03:33:05 用C#写了一个服务端框架,与客户端广播比率为1:30,简单来讲就是每收到一次客户端数据,就将其广播给30个不同的客户端。
测试用客户端登录频率为200ms,数据发送频率为1s,每次发送数据长度为60byte。
当客户端登录数到达1000,此时服务端每秒调用30000次BeginSend方法异步发送数据,服务端CPU大于90%。
这个测试结果与C++下的IOCP框架性能相去甚远,后者同样的测试方法和广播比率,至少能承载2000以上的客户端。
求教大家:这是由于C#下的BeginSend方法太耗性能的原因吗?它跟IOCP下的WsaSend性能差距有这么大吗?还是说和C++相比,C#终究不适于开发大型的网游服务端?