`
px96004
  • 浏览: 4566 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

为啥都说JAVA这种解释执行的语言比C这种本地语言慢?而我的实验却恰恰相反?

阅读更多
看了很多技术网站。都会提到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最快?
无限疑惑中~~~~~
分享到:
评论
5 楼 solonote 2009-06-25  
楼主,请先搞清楚,Java就是用c语言写的
还有一点,语言执行一段代码的速度快慢并不是什么重要的东西,弄清楚这种语言适合做什么,不适合做什么才是有意义的事情.
Java在企业级应用中比c要好很多,但是c语言这种古老的过程语言任然在很多领域被使用.这绝对不是因为谁写一段代码比谁执行的快0.1秒的问题.
这种东西是无聊的
4 楼 lidong2001 2009-06-22  
i不是int型吗,怎么还能循环到100000000?
3 楼 yuantong 2009-06-10  
我也不是牛人,别人的评判标准可能是最佳编码上,或者说不单单以一个循环来衡量
2 楼 pangtao 2009-06-09  
我不是牛人,但是,这些对你有帮助
http://www.matrix.org.cn/thread.shtml?topicId=16092&forumId=18
1 楼 px96004 2009-05-20  
哪位牛人,前辈能给小弟我解释解释这到底为啥?

相关推荐

    Java虚拟机解释执行机制研究.pdf

    Java虚拟机(JVM)是一种能够执行Java字节码的虚拟机,它提供了一个平台无关的执行环境,使得Java程序可以在各种不同的硬件和操作系统上运行。JVM解释执行机制是Java虚拟机执行字节码的一种方式,其中解释器将Java...

    什么是C语言?什么是VB语言?什么是VF语言?什么是JAVA语言?什么是C语言?.pdf

    解释型语言(如VB)的源代码在运行时逐行转化为机器可执行的代码,而编译型语言(如C++)则在执行前将整个源代码编译为可执行文件,执行速度更快,但需要编译过程。 编程的难度取决于所使用的语言和应用场景,但...

    Java语言程序设计实验指导书

    Java语言程序设计实验指导书 理论教材:《Java程序设计标准教程》 第1版 邱加永 人民邮电出版社 实验学时:26 要求 1 Java运行环境 通过在不同环境编译运行一个Java编程环境,认识Java程序结构。 2 Java语言基本...

    什么是C语言?什么是VB语言?什么是VF语言?什么是JAVA语言?什么是C语言? (2).pdf

    C语言是一种高级编程语言,由贝尔实验室的Dennis Ritchie在1972年开发,主要用于系统编程。它以其简洁、高效和灵活性而著名,被广泛用于操作系统、嵌入式系统和软件工具的开发。C语言提供了丰富的控制结构,包括流程...

    Java语言程序设计.pdf

    从提供的文件信息来看,该...以上知识点整理涵盖了Java语言的基本概念、程序结构、工具、字节码、执行机制以及与C++的关系等多个方面,对于想要深入了解Java语言程序设计的专业人士来说,这些知识点都是基础且关键的。

    java语言方法调用C语言函数

    通过这个实例,我们了解了如何使用Java的JNI调用C语言函数的基本步骤:声明Java本地方法、生成C语言头文件、编写C代码、编译C代码为动态链接库,最后在Java中调用该库。这种方法在需要高效计算、底层系统交互或利用...

    C转java工具

    C转Java工具通过解析C语言源代码,将其转换为Java语言的等价表达,从而实现了两者之间的桥梁。 该工具的基本工作原理是:首先,它会读取C源代码文件,然后对C语言的语法结构进行分析,包括变量声明、函数定义、循环...

    Java语言与C++语言的对比分析.pdf

    Java语言由Sun Microsystems公司于1995年推出,而C++则源于1983年推出的C语言,由Bjarne Stroustrup开发。两种语言在继承了C语言一些特性的同时,也在面向对象、安全性和平台无关性等方面进行了大量的优化与创新。 ...

    Java语言与C 语言的比较.pdf

    然后,这种字节码在任何Java的运行环境中由Java虚拟机解释执行,保证了Java与平台无关性和可移植性。 5. 多态的支持:Java语言是一种非常注重对象形态转换的语言,所以在编译时期就会做形态转换检查,在执行时期,...

    c to java 转换工具

    该软件可以把c语言文件转换为java语言文件

    我们该使用何种编程语言?是C、C++、VB、Java还是C#?

    C、C++、VB(Visual Basic)、Java和C#都是广泛应用的编程语言,每种都有其独特的优势和适用场景。 C语言是基础且强大的低级编程语言,它的语法简洁,对内存管理有直接控制,因此在系统编程、嵌入式开发和游戏引擎...

    一个使用ollama本地大语言模型api的Java程序

    一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的...

    Java虚拟机解释执行机制研究.zip

    Java虚拟机(JVM,Java Virtual Machine)是Java语言的核心组成部分,它负责将编译后的字节码(.class文件)转换为机器可执行的指令。这个过程涉及到多个关键概念和机制,包括类加载、解释执行、垃圾收集以及内存...

    Java语言程序设计教程(Java 7)——入门与提高篇01

    编译是将整个源代码一次性转换成机器代码的过程,而解释则是逐条转换源代码并立即执行的过程。 面向对象与面向过程是两种不同的编程范式。面向对象强调对象的概念,对象中既包含了数据也包含了处理数据的方法。程序...

    Java语言面向对象程序设计实验指导与习题答案

    《Java语言面向对象程序设计实验指导与习题答案》是由范玫和马俊共同编著的一本面向初学者和进阶者的Java编程书籍。这本书旨在帮助读者深入理解Java语言的面向对象特性,并通过一系列的实验指导和习题解答,提升实践...

    Java语言程序设计实验报告.pdf

    Java语言程序设计实验报告.pdf

    Java语言程序设计实验-实验报告和程序代码.rar

    南昌大学Java语言程序设计实验报告,为本人亲自撰写,费尽心思,最终实验收获满绩(97分),包括完整的实验报告,程序代码,UML类图,流程图,实验历程,实验心得以及总结,涵盖面广。本人放此主要做收藏之用,有...

    C 语言中文网 Java、Swing、设计模式、Python、Golang 等十三本

    'C++ STL快速入门(C 语言中文网).epub' 'CSS3 教程,7 天快速入门(C 语言中文网).epub' 'GCC 编译器 30 分钟入门教程(C 语言中文网).epub' 'Go 语言入门教程(C 语言中文网).epub' 'Java Swing 教程:30 分钟...

    java怎么调用C语言

    Java作为一种广泛使用的编程语言,因其具有良好的跨平台特性而备受青睐。然而,这种跨平台能力也导致Java与底层系统的交互较为有限,从而限制了某些功能的实现。为了解决这一问题,Java Native Interface (JNI) 提供...

    c转java工具合集

    这段时间本人能找的c或c#转java的工具都在这里。自己留个备份。下面是文件名:C++ to Java Converter、C2J、cnet2_C2J_exe、CPP-to-Java-Converter_Source、CSharp+to+Java+Converter、java转c工具Java2Cpp。没有去...

Global site tag (gtag.js) - Google Analytics