用户工具

站点工具


language_performance

几种语言性能测试

由于实际需要,对几种语言做了下性能测试,过程如下:

测试用例循环10亿次做j++的操作

java:

public class Test {
 
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        long j = 0;
        long start = System.currentTimeMillis();
        long x = Long.valueOf(args[0]);
        for (long i = 0; i < x; i++) {
            j++;
        }
        System.out.println(System.currentTimeMillis() - start);
        System.out.println(j);
    }
}

启动参数加上:

-Djava.compiler=none

python:

j=0
for i in xrange(0,1000000000):
    j=j+1

lua:

local j=0
for i=1000000000,1,-1 
do 
  j=j+1
end

lua在尝试使用luac编译之后,无性能提升,查看lua的官方文档也是这样说的: http://www.lua.org/manual/4.0/luac.html

Pre-compiling does not imply faster execution because in Lua chunks are always compiled into bytecodes before being executed. luac simply allows those bytecodes to be saved in a file for later execution.

c:

#include<stdio.h>
void main(){
    int j=0;
    int i=0;
    for(i=0;i<1000000000;i++){
    j++;
    }
    printf("%d",j);
 
}

其中,gcc编译的时候优化选项为-O 去掉编译器优化。

最后,10亿循的j++性能对比为:

java:14.355s

c:2.253s

lua:11.917s

python:1m58.813s

可见在不开启任何优化的时候,c的性能还是最高的,lua不愧为性能最快的脚本语言,java如果在jit优化的时候,性能达到了426ms,jit优化确实牛逼,而python的性能果然弱到渣。。。

language_performance.txt · 最后更改: 2018/10/14 15:31 (外部编辑)