Erlang 实践杂记-2

二、测试代码运行时间

1、场景描述

    都说Erlang牛逼,高性能,但是执行效率真的很高吗?这个倒真不见得,感兴趣的,可以去测试下每行Erlang代码的运行时间,你会发现,Erlang的执行效率不见得比C或者是C++高。

2、API函数

tc(Module, Function, Arguments) -> {Time, Value}

Types:

Module = module()

Function = atom()

Arguments = [term()]

Time = integer()

In microseconds

Value = term()

Evaluates apply(Module, Function, Arguments) and measures the elapsed real time as reported by os:timestamp/0. Returns {Time, Value}, where Time is the elapsed real time in microseconds, and Value is what is returned from the apply.

3、实例

    -module(myring).

-export([start/1, start_proc/2]).

start(Num) ->

start_proc(Num, self()).

start_proc(0, Pid) ->

Pid ! ok;

start_proc(Num, Pid) ->

    NPid = spawn(?MODULE, start_proc, [Num-1, Pid]),

NPid ! ok,

receive ok -> ok end.

   运行过程

Eshell V5.9.1  (abort with ^G)

1> c(myring).

{ok,myring}

2> timer:tc(myring, start, 1000000).          %%Arguments = [term()]

** exception error: bad argument

     in function  apply/3

        called as apply(myring,start,1000000)

     in call from timer:tc/3 (timer.erl, line 194)

3> timer:tc(myring, start, [1000000]).

{2375954,ok}                     %%时间单位为 us

4> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值