论坛首页 Java企业应用论坛

socketchannel性能不如serversocket?

浏览 5293 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-28  
今天在扩展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企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics