论坛首页 Java版 企业应用

socketchannel性能不如serversocket?

浏览 1874 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-10-23
今天在扩展jetty 6.1的时候发现在jetty中使用socketchannel 居然性能还不如用serversocket

我用的是微软的web application stress tool.

先用用20个线程并发访问,

serversocket 能达到1000次访问/秒
socketchannel 只能达到600次访问/秒

当我把测试线程数增加到200个时
他们都下降到了20次访问/秒

我也测试了resin,数据跟使用serversocket的相差不大。

现在还不知道到底是jetty的问题还是socketchannel的问题。还需要再研究
   
最后更新时间:2007-09-28
nio的优势在于防止线程过多,提高可伸缩性吧?
性能就未必会更好
   
0 请登录后投票
最后更新时间:2007-09-29
今天又测了apache2.2.6,windows2003下500连接的性能沦落到了跟tomcat一个档次,30次/秒
iis依然是1000+次/秒
看来windows下iis的优势无法改变了。

我要再分别用delphi和.net写服务端试试看。
   
0 请登录后投票
最后更新时间:2007-09-29
你传输的数据量应该不大吧,数据量大的时候,使用传统io模型线程将浪费比较多的时间在等待上面,nio此时应该比较有优势。
   
0 请登录后投票
最后更新时间:2007-09-30
今天用isapi+jni做了iis和java的桥,性能相当的不错
居然比.net快不少(可能因为负载不同造成的)

resin的isapi怎么就没想到用jni做呢。搞得还是牛拉车的速度。

今晚准备装fedora,试试看用apache mod做java桥效率如何。
   
0 请登录后投票
最后更新时间:2007-10-02
用jni的话,试试lighttpd+jni,jni写成lighttpd的mod,应该能比apache更快
或者试试ngnix+jni
   
0 请登录后投票
最后更新时间:2007-10-02
一牵扯到性能,jni就成了java的救 命稻草。

以后针对高并发的项目,我一定用jni写连接和管理线程
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐