LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 12902|回复: 26

java的速度比c++慢多少?

[复制链接]
发表于 2008-1-30 11:34:24 | 显示全部楼层 |阅读模式
我有一个纯算法的程序,现在是用java写的,基本只使用java的输入和输出,现在运行需要1小时,不知道用c++重写之后性能是否会有很大的提升。谁有这方面的经验,交流交流。
发表于 2008-1-30 16:14:35 | 显示全部楼层
就速度而言,java在loading的时候比较的慢,主要是因为java的字节码没有完成link的过程,所以在加载的时候,需要做link。这也是为什么java的客户端程序启动都比较慢的原因。但是完全运行起来之后,java的速度并不慢,并且由于java能够动态的利用处理器的扩展api,所以,在默写情况下java的速度甚至可以比c++要快。

每个语言都有一个使用的范围,如果你并不关心加载的速度,那么java很适合你,如果你关心加载的速度,c++更加适合。运行起来之后,速度的区别主要是算法的复杂度,和用c++和java没有太大区别。
回复 支持 反对

使用道具 举报

发表于 2008-1-31 09:08:15 | 显示全部楼层
Post by xcity;1812727
并且由于java能够动态的利用处理器的扩展api,所以,在默写情况下java的速度甚至可以比c++要快。

这种情况说明这个C++的程序写的不好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-1 15:46:28 | 显示全部楼层
我已经试了一下,java和c++的运行时间之比是 266:230,当然java的是不包括加载的时间。看来可以安心的用java继续写下去了。但是有一个很奇怪的问题,既然java的速度已经接近c++,网上还有那么多人用c++作数值计算能?我选java是因为它的安全性,数组在运行时越界了就会报错,想当初调试c++程序那个痛苦,改为等价的java代码之后运行就保存,数组越界了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-1 15:47:10 | 显示全部楼层
改为等价的java代码之后运行就出错,数组越界了
回复 支持 反对

使用道具 举报

发表于 2008-2-5 13:45:32 | 显示全部楼层
Post by gamedragon;1812931
这种情况说明这个C++的程序写的不好。


或者是编译优化没有开完全。。。
回复 支持 反对

使用道具 举报

发表于 2008-2-5 13:47:07 | 显示全部楼层
Post by yuzheng;1813374
我已经试了一下,java和c++的运行时间之比是 266:230,当然java的是不包括加载的时间。看来可以安心的用java继续写下去了。但是有一个很奇怪的问题,既然java的速度已经接近c++,网上还有那么多人用c++作数值计算能?我选java是因为它的安全性,数组在运行时越界了就会报错,想当初调试c++程序那个痛苦,改为等价的java代码之后运行就保存,数组越界了。


因为jvm loading的时间不爽。。。。
java语言本身还是很不错的。。。
至于数组越界这种所谓的安全性。。。。。忽略。。。。。太囧了。。。
回复 支持 反对

使用道具 举报

发表于 2008-2-19 12:13:44 | 显示全部楼层
整个一个月经贴。不予理会。
回复 支持 反对

使用道具 举报

发表于 2008-2-20 18:55:22 | 显示全部楼层
Post by yuzheng;1813374
我已经试了一下,java和c++的运行时间之比是 266:230,当然java的是不包括加载的时间。看来可以安心的用java继续写下去了。但是有一个很奇怪的问题,既然java的速度已经接近c++,网上还有那么多人用c++作数值计算能?我选java是因为它的安全性,数组在运行时越界了就会报错,想当初调试c++程序那个痛苦,改为等价的java代码之后运行就保存,数组越界了。


因为C++的现成代码多,有得可抄。
回复 支持 反对

使用道具 举报

发表于 2008-3-20 18:39:46 | 显示全部楼层
纯算法,还是C比较快。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表