我刚刚对 Scala、Java 和 C 进行了比较。以下是我运行的代码和得到的结果:
Java(原始数据类型):
class test {
public static void main(String args[]) {
long t1=System.nanoTime();
for (int i=0; i<1000000000; i++) {
}
long t2 = System.nanoTime();
System.out.println((t2-t1));
}
}
输出:1181601584
,即 1.2 秒
C:
#include <stdio.h>
#include <time.h>
int main() {
clock_t t1=clock();
for (int i=0; i<1000000000; i++) {
}
clock_t t2= clock();
printf("%u",(t2-t1)/(double)CLOCKS_PER_SEC);
return 0;
}
输出:2233382994
,即 2.2 秒
斯卡拉:
object test {
def main(args: Array[String]) {
val nos = 1 to 1000000000
val t1 = System.nanoTime
for (i<-nos) {
}
val t2 = System.nanoTime
println(t2-t1)
}
}
输出:12392282270
,即 12.4 秒
Java(盒装):
class test {
public static void main(String args[]) {
Long t1=System.nanoTime();
for (Integer i=0; i<1000000000; i++) {
}
Long t2 = System.nanoTime();
System.out.println((t2-t1));
}
}
输出:20756681957
,即 20.8 秒
现在,我的问题是,如果原始的东西比盒装的对应物更快,我们为什么要选择使用面向对象的语言?我同意面向对象编写大型项目要容易得多,但如果效率和速度是我们所寻找的(就像在服务器和超级计算机中一样,而且我认为更快的软件对家庭用户来说更好) ,为什么世界上会有人尝试用 Scala 编写他的代码?一个更深层次的问题是,为什么会出现这些慢速语言?