> Erlang中文手册 > statistics/1 返回系统信息

erlang:statistics/1

返回系统信息

用法:

statistics(Type) -> Res

返回跟指定类型 Type 相关的系统信息

context_switches:返回 {ContextSwitches, 0},参数 ContextSwitches 指的是系统启动到当前上下文切换的总数。

erlang:statistics(context_switches).

exact_reductions:返回 {Total_Exact_Reductions, Exact_Reductions_Since_Last_Call}。

erlang:statistics(exact_reductions).

garbage_collection:返回 {Number_of_GCs, Words_Reclaimed, 0}。

erlang:statistics(garbage_collection).

io:返回 {{input, Input}, {output, Output}},Input 是指端口接收到的总的字节数,Output 是指端口输出的总的字节数。

erlang:statistics(io).

reductions:返回 {Total_Reductions, Reductions_Since_Last_Call}。

erlang:statistics(reductions).

run_queue:返回执行队列的长度,就是准备运行的进程数量。

erlang:statistics(run_queue).

runtime:返回 {Total_Run_Time, Time_Since_Last_Call} 的格式数据,Total_Run_Time 是指总的 CPU 执行时间,Time_Since_Last_Call 是指从上次调用以来代码执行消耗 CPU 的时间。

erlang:statistics(runtime).

wall_clock:返回 {Total_Wallclock_Time, Wallclock_Time_Since_Last_Call} 的格式数据,Total_Wallclock_Time 是指代码总的运行时间,Wallclock_Time_Since_Last_Call 是指从上次调用以来代码的执行时间。

erlang:statistics(wall_clock).

利用 wall_clock 获取当前程序总的运行时间:

{Total_Wallclock_Time, _Wallclock_Time_Since_Last_Call} = erlang:statistics(wall_clock),
{D, {H, M, S}} = calendar:seconds_to_daystime(Total_Wallclock_Time div 1000),
lists:flatten(io_lib:format("~p days, ~p hours, ~p minutes and ~p seconds", [D, H, M, S])).