首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Erlang 实践散文-2

2012-08-25 
Erlang 实践杂记-2二、测试代码运行时间1、场景描述????都说Erlang牛逼,高性能,但是执行效率真的很高吗?这个

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>?

热点排行