看了很多技术网站。都会提到JAVA比C要慢。而且有的还会说会慢上一个数量级,什么解释执行啊,效率低啊~~~~~
今天闲来无事做了个实验,其实也简单 就是循环个 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最快?
无限疑惑中~~~~~
今天闲来无事做了个实验,其实也简单 就是循环个 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最快?
无限疑惑中~~~~~