0 0

mina在linux和windows下的性能问题30

我用mina做服务器和客户端分别在linux和windows下做了测试,发现在windows下的性能明显高于linux,不知道问题出在哪了,代码如下,望高手能够指教一下:
     server端:接受消息然后直接转发回客户端

  
    IoAcceptor acceptor=new NioSocketAcceptor();
		//acceptor.getFilterChain().addLast("logger ", new LoggingFilter());
		acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
		acceptor.getFilterChain().addLast("threadPool", new ExecutorFilter(new OrderedThreadPoolExecutor(10)));
		acceptor.setHandler(new MinaServerHandler());
		acceptor.bind(new InetSocketAddress(PORT));
		acceptor.getSessionConfig().setBothIdleTime(30);
   




    client端:循环发送100字节数据到服务器,接收服务器发回的数据并统计时间

   
     IoConnector connector = new NioSocketConnector();
			connector.setHandler(new MinaClientHandler());
			connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
			connector.getSessionConfig().setBothIdleTime(30);
			 
			ConnectFuture future = connector.connect(new InetSocketAddress(ip, port));
			future.awaitUninterruptibly();
			
			boolean connected=future.isConnected();
			if(connected){
				System.out.println("Connected the Server:"+ip+" on port:" + port);
//				future.cancel();
//				connector.dispose(true);
				int count=0;
				future.awaitUninterruptibly();
				IoSession session = future.getSession();
				while(count < 20000){
					session.write(System.currentTimeMillis()+":" + Arrays.toString(new byte[100]));
					Thread.sleep(time);
					count++;
				}
			}
     



  在windows7 32位 jdk1.6  双核 4G内存    下测试结果
              消息数 count = 1000  所花费时间   time=756
              消息数 count = 6000  所花费时间   time=2768
              消息数 count = 10000  所花费时间   time=4187
              消息数 count = 12000  所花费时间   time=4971
              消息数 count = 15000  所花费时间   time=6082
              消息数 count = 20000  所花费时间   time=7814
在linux Centos6.0 64位  jdk1.6    8核  16G内存    测试结果
              消息数 count = 1000  所花费时间   time=1937
              消息数 count = 6000  所花费时间   time=11684
              消息数 count = 10000  所花费时间   time=19719
              消息数 count = 12000  所花费时间   time=23702
              消息数 count = 15000  所花费时间   time=29896
              消息数 count = 20000  所花费时间   time=40829
这个结果明显不合理,哪位高手知道原因的请告知一下,感激不尽!!!

问题补充:
gaosj 写道
Thread.sleep(time);  
的关系吧,linux和windows下的时延可能会有不同,你自己测试一下看看!我也不确定

不是这个原因  查了下是tcp协议在linux上的TcpNoDelay存在问题  暂时解决了
2012年2月01日 20:50

1个答案 按时间排序 按投票排序

0 0

Thread.sleep(time);  
的关系吧,linux和windows下的时延可能会有不同,你自己测试一下看看!我也不确定

2012年2月02日 11:27

相关推荐

    高性能Java网络框架 MINA.7z

    7. **跨平台兼容**:由于是用Java编写的,MINA可以运行在任何支持Java的平台上,包括Windows、Linux、Mac OS X等。 8. **社区支持**:MINA有活跃的社区和用户群,提供了大量的示例、文档和教程,帮助开发者解决问题...

    Mina Server调试工具

    9. **多平台支持**:考虑到Mina服务器可能部署在不同的操作系统上,调试工具通常会提供跨平台支持,确保在Windows(如myClient.exe)、Linux和Mac OS等平台上都能正常运行。 10. **用户友好界面**:提供直观的图形...

    java mina组合包

    - 由于Java的跨平台特性,Mina可以在多种操作系统上运行,如Windows、Linux、Mac OS等。 5. **高性能**: - NIO的非阻塞特性使得Mina可以处理大量并发连接,适合高负载的网络服务。 6. **可扩展性**: - Mina的...

    apache-mina-2.0.8

    10. **跨平台性**:作为Java项目,Apache MINA可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS等。 总结来说,Apache MINA 2.0.8是一个强大且灵活的网络应用开发框架,适用于构建高并发、高性能的网络...

    mina框架实例

    6. **多平台支持**:MINA是跨平台的,可以在不同的操作系统和Java虚拟机上运行,包括Windows、Linux、Mac OS等。 7. **性能优化**:MINA使用了Java NIO,可以处理大量的并发连接。NIO的非阻塞特性使得MINA在高负载...

    MINA2项目所用JAR包

    7. **mina-transport-apr-2.0.7.jar**:MINA的 APR(Apache Portable Runtime)传输层,利用操作系统底层的网络库,如Linux的libevent或Windows的WS2_32,提供高性能的网络I/O。 8. **mina-integration-jmx-2.0.7....

    mina高性能Java网络框架.zip

    可以在任何支持Java的环境中运行,如Windows、Linux、Mac OS等。 7. **丰富的示例** MINA项目提供了许多示例代码,涵盖了从基础的Echo服务到复杂的FTP服务器的实现,有助于开发者快速理解和上手。 8. **社区支持*...

    apache-mina

    5. **跨平台**:作为Java项目,MINA天生具有跨平台特性,可以在任何支持Java的环境中运行,包括Windows、Linux、Mac OS等。 6. **丰富的文档和支持**:MINA社区提供了详尽的文档和丰富的示例代码,方便初学者入门。...

    apache-mina-2.0.7架包与源码

    2. **平台无关性**:由于MINA是用Java编写的,所以它可以跨平台运行,无论是在Windows、Linux还是其他支持Java的系统上。 3. **多协议支持**:MINA提供了一种统一的API,可以方便地处理多种网络协议,如TCP/IP、UDP/...

    apache-mina-2.0.4-src

    4. **跨平台**:由于是基于Java开发,Apache Mina可以在任何Java运行环境中使用,支持Windows、Linux、Mac OS等操作系统。 5. **高度可扩展**:Mina的设计使得添加新的协议或网络服务变得容易,只需添加新的过滤器...

    Apache_Mina_Server_2.0中文参考手册

    7. **跨平台性**:由于基于Java开发,Apache Mina Server 2.0可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS等,具备良好的跨平台兼容性。 8. **可配置性**:Mina允许开发者通过XML配置文件或者代码...

    mina框架详解

    在Java NIO编程中,通常只使用一个Selector,但在Mina中,IoService和IoProcessor各自拥有独立的Selector,这样的设计更有利于提高并发性能。 ```java IoAcceptor acceptor = new NioSocketAcceptor(); acceptor....

    Apache_Mina_Server_2.0.rar_mina

    7. **跨平台**:作为Java项目,Apache Mina可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS等。 通过阅读“Apache Mina Server 2.0中文参考手册V1.0.pdf”,你可以深入了解Mina的架构设计、配置方式、...

    mina框架api文档(英文版 免积分直下)

    由于Mina是基于Java的,所以它具有跨平台的优势,可以在多种操作系统上运行,包括Windows、Linux、Mac OS等。 **9. 故障恢复与连接管理** Mina提供了连接超时、异常处理和重连策略等功能,帮助开发者处理网络故障...

    mian-2.0.3

    8. **跨平台兼容**:作为Java库,MINA 可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS X等。 在"Mian-2.0.3"这个版本中,可能会包含以下改进和更新: - **性能优化**:新版本可能针对前一版本的性能...

    通信测试例子,大家有空可以玩一下

    3. **跨平台**:MINA是用Java编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS等。 4. **协议支持**:MINA提供对多种网络协议的支持,如TCP、UDP、SSL/TLS等,方便开发各种网络应用。 5. ...

    Apache Ftpserver

    FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行, 也可以嵌入Java应用程序中。我们还提供对Spring应用程序内集成的支持, 并以OSGi捆绑软件的形式提供我们的发行版。默认的网络支持基于高性能异步IO...

    Java简单实现Ping功能.doc

    在某些情况下,如果你需要自定义ping包或者有特殊需求,可以使用Mina来创建ping包并发送。Mina库提供了对套接字操作的封装,可以方便地构建网络应用。不过,对于简单的ping功能,直接调用操作系统命令可能更为简便。...

    apache-sshd-0.13.0-src.zip

    Apache SSHD项目基于Java实现,这意味着它可以在任何支持Java的平台上运行,包括但不限于Linux、Windows、Mac OS等。SSHD提供了丰富的功能,包括: 1. 支持多种身份验证机制:除了基础的密码认证,还支持公钥认证、...

    apache-activemq

    9. **消息传输优化**:支持TCP/IP协议,同时还有NIO(非阻塞I/O)和MINA(Multi-purpose Infrastructure for Network Applications)框架,以提高网络性能。 在安装"apache-activemq-5.7.0-bin"压缩包时,通常包括...

Global site tag (gtag.js) - Google Analytics