`
acme_ltt
  • 浏览: 52055 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Erlang 实践杂记-2

阅读更多

二、测试代码运行时间

1、场景描述

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

2API函数

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> 

分享到:
评论
1 楼 mathgl 2013-06-04  
erlang vm性能很一般。

相关推荐

Global site tag (gtag.js) - Google Analytics