最近 找了一些 关于python在networking的library。从最早用的twisted,到国人写的 eurasia 3,还有别的。
总的来说,大部分在Linux下表现良好,但是在windows下表现一般,甚至有些并不支持windows。
目前windows下最高效的异步io 就是 iocp了。经过研究,发现似乎很少有第三方的语言包会直接支持这个。是不是iocp过于复杂,难以做一个跨平台 同时支持epoll 和 iocp的库呢? 好像是,,又好像不是。。
我注意到 boost asio是支持iocp的, 而 ice里面的 glacier2router最新版本 也同时支持epoll和iocp。理论上在此基础上做一个包装,应该是可行......
说回到 mono。。我上次在maillist发现有人说 用 socketasyncargs 比 iasyncresult 差了很多。很奇怪的现象....
Java据说也是要到7 才会支持 iocp。。之前使用 thread pool+select的。不过没看过源码,不知道如何。从zeroc的测试来看应该不是iocp. cpu占用率还是奇高无比.....
目前暂时在我手头能用的 还真的就是 .net自带的async socket和 boost asio鸟............
ACE不在考虑范围内..