浏览 2637 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-19
今天闲来无事做了个实验,其实也简单 就是循环个 10000000000次,算下时间。结果,JAVA最快的。 代码如下: 先来个C版的: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { time_t t1 = time(NULL); double k = 0; for(int j=0;j<100;j++) for (int i = 0; i < 100000000; i++) { k += 3.1415926 * i*j; } time_t t2 = time(NULL); printf("%ld\n", t2 - t1); printf("%f\n",k); system("pause"); } 再来个java版的 import java.io.IOException; import java.util.Calendar; public class test { public test() { timeStart = Calendar.getInstance(); double k = 0; for (int j = 0; j < 100; j++) { for (int i = 0; i < 100000000; i++) { k += 3.1415926 * i * j; } } timeEnd = Calendar.getInstance(); System.out.println(k); System.out.println(timeEnd.getTimeInMillis() - timeStart.getTimeInMillis()); } public static void main(String[] args) throws IOException { new test(); } private Calendar timeStart; private Calendar timeEnd; } 其中C版的我用GCC编译器,编译执行,总共用了约70秒。 用JAVA版的,我的JAVA版本是1.6,编译执行,总共用了约51秒。 最搞笑的是 C版我用VC++6.0编译执行,居然用时140秒。 我的系统是XP,CPU是AMD KT-55 1.8G 后来我又写了个JS版 代码如下: <html> <head> </head> <body> <script> var k; for(var j=0;j<100;j++) for(var i = 0; i < 100000000; i++) { k += 3.1415926 * i*j; } alert(k); </script> </body> 结果我用谷歌浏览器,等了4分钟也没出结果。放弃。 哪位大虾能帮我解释解释到底为啥~~~ 在我看来C是肯定要比JAVA快的,可为啥结果却是JAVA最快? 无限疑惑中~~~~~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-20
哪位牛人,前辈能给小弟我解释解释这到底为啥?
|
|
返回顶楼 | |
发表时间:2009-06-09
我不是牛人,但是,这些对你有帮助
http://www.matrix.org.cn/thread.shtml?topicId=16092&forumId=18 |
|
返回顶楼 | |
发表时间:2009-06-10
我也不是牛人,别人的评判标准可能是最佳编码上,或者说不单单以一个循环来衡量
|
|
返回顶楼 | |
发表时间:2009-06-22
i不是int型吗,怎么还能循环到100000000?
|
|
返回顶楼 | |
发表时间:2009-06-25
楼主,请先搞清楚,Java就是用c语言写的
还有一点,语言执行一段代码的速度快慢并不是什么重要的东西,弄清楚这种语言适合做什么,不适合做什么才是有意义的事情. Java在企业级应用中比c要好很多,但是c语言这种古老的过程语言任然在很多领域被使用.这绝对不是因为谁写一段代码比谁执行的快0.1秒的问题. 这种东西是无聊的 |
|
返回顶楼 | |