困惑:JAVA部署到WINDOWS运行比JAVA快?

我用MINA框架写了一个SOCKET通讯服务器,部署到WINDOWS上运行,响应一个客户的请求大概是1秒,而在LINUX ENTERPRISE 4上是3秒-5秒。
这是为什么呢?是不是什么地方没配置好,请教各位大侠,谢谢!
用的都是SUN 的 JDK1.6
[b]问题补充:[/b]
我用MINA框架写了一个SOCKET通讯服务器,部署到WINDOWS上运行,响应一个客户的请求大概是1秒,而在LINUX ENTERPRISE 4上是3秒-5秒。
这是为什么呢?是不是什么地方没配置好,请教各位大侠,谢谢!
用的都是SUN 的 JDK1.6
[b]问题补充:[/b]
我用LOG4J记录日志跟踪了下。

模拟的情况是这样的:一台机子发送一个socket请求到服务器上(重复做3次)

结果观察到所耗费的时间区别就是在我程序中的一个类(由AIXS2生产的访问webservice代理对象)的创建中(new)

windows服务器 创建这个对象的时间如下:第一次 700-800ms 第二次60ms 第三次30ms
LINUX服务器 每次都要2m左右

程序中其他模块所消耗的时间基本相同,没太大区别(其他模块也基本没什么对象生成)

难道WINDOWS上NEW一个java对象速度比LINUX上真快?
[b]问题补充:[/b]
想起一个问题
我windows上是用myeclipse启动跑的

而LINUX上是在WINDOWS上通过myclipse打包成jar部署的(因为比较懒,把MINA和AXIS中所有的JAR包全部引入了)。

会不会是因为这个导致慢?
打包JAR时,如果工程引用了过多的多余JAR是不是会影响效率?

初次写JAVA,请多帮助
[b]问题补充:[/b]
晕,我发现问题了,既然没想到JAR会影响效率

我WINDOWS上是用ECLIPSE运行的
LINUX上运行打包后的JAR。

我将WINDOWS上的变成JAR后,效率就基本相同了,感觉LINUX要更快一点(也许是机子配置的细微差别)

JAR为什么打包会影响效率,打包是不是有什么地方要注意(我是用MYECLIPSE7.0自带的RUNJAR(好像拼写错了)向导打包的)
[b]问题补充:[/b]
问题解决了,谢谢解答的兄弟们,罪魁祸首就是JAR打包造成得

我使用MYECLIPSE7.0M2自带得打包向导(runnalbejar,好像又拼错了)打包成JAR得,打包后他把所有程序中用到得第三方类库全部打进去了。

我仔细看了下打包后得JAR里有很多多余得配置文件和一些类包,

我就尝试得删除了多余得配置文件和一些多余得类包(类包应该不是问题,问题应该是多余得配置文件),然后无论是不打包就这样运行,还是再打包JAR运行,都不存在效率问题,速度运行都很快了~

补充说明:给我感觉还是LINUX比windows快,后面这样搞就好了

另外我还有一个问题,是不是MYECLIPSE那个自带打包程序有时不够智能,存在问题,你们平时都是怎么打包得,用什么工具?
(我得要求是打包成JAR就可以,程序中用到了很多第三方类库)

备注:我这个程序是个SOCKET程序,不是什么J2EE,没有用到WEB容器,就直接用JVM跑得

再保留两天,两天后结贴,先谢谢楼上得各位大侠~

7个回答

myeclipse打包总会打进去很多无用的包,个人觉得现在完全没有必要再使用Myeclipse了,使用Eclipse WTP (for Java EE) + plugin 就可以完成开发任务了。

至于打包我一般用 Fat Jar, 你可以试试。

[url]http://fjep.sourceforge.net/[/url]

另外佩服下楼主,很有钻研精神!

要是自己的话,就算发现了,估计也不会深究。 :wink:

额。。。

不知道 这个一秒和三秒的差距 你是怎么测试出来的
你可以试试用Jmeter之类的测试工具 多测试几个请求 看看平均响应时间 再做判断比较科学。。。

不同操作系统是性能是有不同,这种都是底层socket通信,自然应该有所差

差距不会如此明显的,原因可能在你的代码里,检查自己的代码做了哪些操作,可以通过日志记录时间来判断耗时在哪段代码里

原因应该在你的webservice

可能是你运行的容器和myeclipse启动使用的JVM占用的内存或者分配资源有区别

windows和linux如果相同的机子,相同的环境,相同的加载项的话,相比的话,肯定linux更胜一筹的!而且也是linux安全,这也是为什么大多数java项目都会选择linux系统作为服务器首选的原因了!jar包的话,这些都是系统启动的时候需要加载的东西,如果越多越大,加载的也就越慢,系统的运行速度也就越慢!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐