Meh*_*dad -3 c java performance scala
我刚刚对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));
}
}
Run Code Online (Sandbox Code Playgroud)
输出: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;
}
Run Code Online (Sandbox Code Playgroud)
输出: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)
}
}
Run Code Online (Sandbox Code Playgroud)
输出: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));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:20756681957
,即20.8秒
现在,我的问题是,如果原始的东西比盒装的反零件更快,为什么我们应该选择使用面向对象的语言呢?我同意以面向对象的方式编写大型项目要容易得多,但如果效率和速度是我们所寻求的(就像在服务器和超级计算机中一样,而且我认为更快的软件对于家庭用户来说更好) ,为什么世界上的任何人都试图在Scala中编写他的代码?更深层次的问题甚至是为什么这些慢速语言出现了?
选择语言的主要因素并不总是(甚至极少)表现.你会在这两者中选择哪一个:
你真的认为最终用户关心响应时间是2还是20毫秒?那些时间太短,以至于无法区分.但是,与2天的开发相比,30天的开发是巨大的.每天1000美元,这是非常不同的.
而且,你的基准是有缺陷的.
此外,您不使用OOP来使用Integer而不是int.您可以使用OOP以更直观的方式操作由多个字段和方法组成的复杂对象.
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |