看到yufeng转一德国人的帖子比较erlang +native编译的运算能力和C语言-O0(不优化)对比。遂亲自动手实验一下。结果如下:
代码:
https://github.com/hmisty/coding/blob/master/erlang/cpu_intensive.erl
https://github.com/hmisty/coding/blob/master/erlang/cpu_intensive.c
https://github.com/hmisty/coding/blob/master/erlang/Makefile
环境 EC2 micro instance
Fib erlang native code
8.17user 0.52system 0:08.56elapsed 101%CPU (0avgtext+0avgdata 30112maxresident)k
0inputs+0outputs (0major+3229minor)pagefaults 0swaps
Fib erlang normal code
195.52user 1.63system 3:19.14elapsed 98%CPU (0avgtext+0avgdata 29920maxresident)k
0inputs+0outputs (0major+3204minor)pagefaults 0swaps
Fib C w/out optimization
9.38user 0.00system 0:09.39elapsed 99%CPU (0avgtext+0avgdata 1456maxresident)k
0inputs+0outputs (0major+125minor)pagefaults 0swaps
Fib C w/ O2 optimization
5.02user 0.00system 0:05.02elapsed 99%CPU (0avgtext+0avgdata 1472maxresident)k
0inputs+0outputs (0major+125minor)pagefaults 0swaps
Fib C w/ O3 optimization
2.01user 0.00system 0:02.00elapsed 100%CPU (0avgtext+0avgdata 1472maxresident)k
0inputs+0outputs (0major+125minor)pagefaults 0swaps
结论:
erlang用+native开关编译确实效率足以与C语言-O0的运算效率媲美。
是不是erlang Map/Reduce直接用erlang写运算体也差不多啊?哈哈。
通过对Erlang和C语言进行性能测试,发现使用+native编译选项的Erlang程序性能接近未优化的C代码。测试涉及递归算法,并在相同环境下比较了不同优化级别的C编译结果。
75

被折叠的 条评论
为什么被折叠?



