实验CPU密集型计算

今天实验了一下霸爷博客里的CPU密集型计算,
计算的内容时计算四遍斐波纳妾数列的第四十个元素是多少
代码如下:
cpu_intensive.erl
-module(cpu_intensive).

-compile([export_all]).

fib_test() ->
fib(40),
fib(40),
fib(40),
fib(40),
fib(40).

fib(0) ->
1;
fib(1) ->
1;
fib(N) ->
fib(N-1) + fib(N-2).

cpu_intensive.c

#include"stdio.h"

unsigned int fib(unsigned int n)
{
if(n ==1 || n == 0){
return 1;
}
return fib(n-1) + fib(n-2);
}


int main()
{
fib(40);
fib(40);
fib(40);
fib(40);
fib(40);
return 0;
}


Makefile文件
[quote]
all: native normal c

native:
@erlc +native cpu_intensive.erl
@echo ""
@echo "Fibonacci Erlang native code"
@time erl -noshell -s cpu_intensive fib_test -s erlang halt

normal:
@erlc cpu_intensive.erl
@echo ""
@echo "Fibonacco Erlang non-native code"
@time erl -noshell -s cpu_intensive fib_test -s erlang halt

c:
@gcc -O0 -o cpu_intensive cpu_intensive.c
@echo ""
@echo "Fibonacci written in C without optimizations"
@time ./cpu_intensive
[/quote]
结果如下:
$ make

Fibonacci Erlang native code
6.35user 0.02system 0:06.37elapsed 100%CPU (0avgtext+0avgdata 69616maxresident)k
0inputs+0outputs (0major+4039minor)pagefaults 0swaps

Fibonacco Erlang non-native code
29.48user 0.02system 0:29.54elapsed 99%CPU (0avgtext+0avgdata 70352maxresident)k
0inputs+0outputs (0major+4084minor)pagefaults 0swaps

Fibonacci written in C without optimizations
5.54user 0.00system 0:05.55elapsed 99%CPU (0avgtext+0avgdata 1376maxresident)k
0inputs+0outputs (0major+109minor)pagefaults 0swaps


代码可以从附件下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值