Java和C最大的不一样是在于Java的可伸缩性Scalable,可以平滑发展到分布式云计算平台,经过云计算可以处理不断增加的业务访问量,这个代价过程是很是小容易的。
那么在单机环境下,Java过去一直被认为低于C程序,最近老外作了一个实验,进行了比较:
String Hash案例:
Complete C++ code: http://pastebin.com/d280c1cd4
Complete Java code: http://pastebin.com/m541c4655
主要核心程序以下,是一个循环:
html
int h=0;
for( int i=0; ih = 31*h+str[i];
return h;
bool *sieve = new bool[max];
for (int i=0; itrue;
sieve[0] = false;
sieve[1] = false;
int lim = ( int)sqrt(max);
for ( int n=2; nif (sieve[n]) {
for ( int j=2*n; jsieve[j] = false;
}
}
int sum=0;
for (int i = 0; i < max; i++)
sum += val(); // virtual call
return sum;
在一样x86上测试结果:
> a.out 1000000000 0
1000000000 adds in 2.657645 secs
> java vcall 1000000000 0
1000000000 adds in 0.0 secs
Java几乎是无限地快,至少能够说明Java不比C慢,甚至在某些状况下快于C,那种认为java比C慢的观点应该扔到垃圾堆里去了。
原文:
Java vs C performance... again...