Как измерить время, которое функция занимает для выполнения от оболочки erlang?

Есть ли существует простой способ измерить время выполнения функции, если я выполняю ту функцию от оболочки erlang?

11
задан Svante 9 January 2010 в 01:11
поделиться

2 ответа

[

] См. статью [] Измерение времени исполнения функции[].[

] [

] Все это основано на [] таймере:tc/3[] для измерения.[

].
18
ответ дан 3 December 2019 в 05:34
поделиться

Если вы хотите измерить анонимную функцию:

1> TC = fun(F) -> B = now(), V = F(), A = now(), {timer:now_diff(A,B), V} end.

2> F = fun() -> lists:seq(1,1000) end.
3> TC(F).
{47000,
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
  23,24,25,26,27|...]}

среднее значение N запусков:

4> TCN2 = fun(T,F,0) -> ok; (T,F,N) -> F(), T(T,F,N-1) end.
5> TCN = fun(F,N) -> B=now(), TCN2(TCN2,F,N), A=now(), timer:now_diff(A,B)/N end.

6> TCN(F, 1000).
63.0
3
ответ дан 3 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: