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])).