基于Linux的苹果电脑 C不一定比Java快


比较了很多语言的运行速度,包括Ruby、Io、 PHP、Python、Lua、Java、Perl、Applescript、TCL、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  
    • 1
    • 2
    • 3
    • 下一页

    相关内容