注册
 找回密码
 注册
江西广告网
查看: 381|回复: 0
打印 上一主题 下一主题

实例演示:Java和C语言哪个更快?

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-5 08:59:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我之前在某人的博客中看到一篇文章,他比较了很多语言的运行速度,包括Ruby、Io、 PHP、Python、Lua、Java、Perl、Applescript、TCL、ELisp、Javascript、OCaml、Ghostscript和C等。数据如下: 语言 时间 相对速度 ocaml compiled 3.09.2 0.05 seconds 1.00 x SBCL 1.0.2 0.13 seconds 2.43 x C gcc-4.0.1 0.14 seconds 2.67 x Java 1.4.2 0.39 seconds 7.49 x Lua 5.1 1.25 seconds 23.81 x Io 20070410 Vector 1.37 seconds 26.13 x ocaml bytecode 3.09.2 3.75 seconds 71.48 x Python 2.5.1 9.99 seconds 190.33 x Ghostscript 8.51 11.79 seconds 224.51 x Perl 5.8.6 Optimized 12.37 seconds 235.57 x TCL 8.4 Optimized 16.00 seconds 304.76 x Perl 5.8.6 21.75 seconds 414.29 x PHP 5.1.4 23.10 seconds 440.05 x Javascript SpiderMonkey v1.6 31.14 seconds 593.10 x Ruby 1.8.4 33.05 seconds 629.54 x Emacs Lisp 47.00 seconds 895.24 x Applescript 71.75 seconds 1366.67 x Io 20070410 85.44 seconds 1627.47 x 可以看到Java几乎比C慢两倍! 但是接着我发现他用的是Java的老版本而且只实验了一次,这实际上并不能够真实地体现Java的速度。 于是我迅速写了点代码运行100三次,并用我认为 “快”的方式运行(其实还有更快的,只是我比较懒没有设定)。结果如下: $ java -server -XX:CompileThreshold=1 Mandelbrot 2>/dev/null Java Elapsed 2.994 Java Elapsed 1.926 Java Elapsed 1.955 $ gcc -O8 mandelbrot.c $ ./a.out 2>/dev/null C Elapsed 2.03 C Elapsed 2.04 C Elapsed 2.05 C 仍然赢得了第一轮,但接下来的两次明显Java快。 当然,结果会因为代码和机器的不同而不一样,但有一点可以确定:Java运行相当快。 这次测试用的版本是Java 1.6.0—b105 和gcc 4.1.2,用的电脑是苹果,内核是酷睿双核2.33GHz ,Linux操作系统。 处于好玩,我还在Rhino编辑器上运行了JS的测试: $ java -cp rhino1_6R5/js.jar -server -XX:CompileThreshold=1 org.mozilla.javascript.tools.shell.Main -O 9 mandelbrot.js 2>/dev/null JavaScript Elapsed 21.95 JavaScript Elapsed 17.039 JavaScript Elapsed 17.466 JavaScript Elapsed 17.147 在这个测试中,JS比C慢九倍。如果CPU的速度没18个月翻一番,那么2007年JS的运行速度就赶上2002 C 的速度了。 后来在C语言 的测试中加了些cpp,-march=pentium4发挥了点作用,但结果还是比Java慢: $ gcc -O9 -march=pentium4 mandelbrot2.c $ ./a.out 2>/dev/null C Elapsed 1.99 C Elapsed 1.99 C Elapsed 1.99 代码业已经提供给您,是C语言快还是Java快,您觉得呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表