ets info
This commit is contained in:
parent
228e6bd6fb
commit
1257b53951
|
@ -75,7 +75,13 @@
|
||||||
get_process_list/0,
|
get_process_list/0,
|
||||||
get_process_info/0,
|
get_process_info/0,
|
||||||
get_process_gc/0,
|
get_process_gc/0,
|
||||||
get_process_group_leader_info/1]).
|
get_process_group_leader_info/1,
|
||||||
|
get_ets_list/0,
|
||||||
|
get_ets_info/0,
|
||||||
|
get_ets_info/1,
|
||||||
|
get_ets_object/0,
|
||||||
|
get_ets_object/1
|
||||||
|
]).
|
||||||
|
|
||||||
loads() ->
|
loads() ->
|
||||||
[{load1, ftos(cpu_sup:avg1()/256)},
|
[{load1, ftos(cpu_sup:avg1()/256)},
|
||||||
|
@ -183,6 +189,44 @@ get_process_group_leader_info(LeaderPid) when is_pid(LeaderPid) ->
|
||||||
LeaderInfo = [{Key, Value}|| {Key, Value} <- process_info(LeaderPid), lists:member(Key, ?PROCESS_INFO)],
|
LeaderInfo = [{Key, Value}|| {Key, Value} <- process_info(LeaderPid), lists:member(Key, ?PROCESS_INFO)],
|
||||||
lists:flatten([convert_pid_info(E) || E <- LeaderInfo]).
|
lists:flatten([convert_pid_info(E) || E <- LeaderInfo]).
|
||||||
|
|
||||||
|
get_ets_list() ->
|
||||||
|
ets:all().
|
||||||
|
|
||||||
|
get_ets_info() ->
|
||||||
|
[get_ets_info(Tab) || Tab <- ets:all()].
|
||||||
|
|
||||||
|
get_ets_info(Tab) ->
|
||||||
|
case ets:info(Tab) of
|
||||||
|
undefined ->
|
||||||
|
[];
|
||||||
|
Entries when is_list(Entries) ->
|
||||||
|
mapping(Entries)
|
||||||
|
end.
|
||||||
|
|
||||||
|
get_ets_object() ->
|
||||||
|
[{Tab, get_ets_object(Tab)} || Tab <- ets:all()].
|
||||||
|
|
||||||
|
get_ets_object(Tab) ->
|
||||||
|
TabInfo = ets:info(Tab),
|
||||||
|
Size = proplists:get_value(size, TabInfo),
|
||||||
|
NameTab = proplists:get_value(named_table, TabInfo),
|
||||||
|
if (Size == 0) or (NameTab == false) ->
|
||||||
|
[];
|
||||||
|
true ->
|
||||||
|
ets:tab2list(Tab)
|
||||||
|
end.
|
||||||
|
|
||||||
|
mapping(Entries) ->
|
||||||
|
mapping(Entries, []).
|
||||||
|
mapping([], Acc) ->
|
||||||
|
Acc;
|
||||||
|
mapping([{owner, V}|Entries], Acc) when is_pid(V) ->
|
||||||
|
OwnerInfo = process_info(V),
|
||||||
|
Owner = proplists:get_value(registered_name, OwnerInfo, undefined),
|
||||||
|
mapping(Entries, [{owner, pid_port_fun_to_atom(Owner)}|Acc]);
|
||||||
|
mapping([{Key, Value}|Entries], Acc) ->
|
||||||
|
mapping(Entries, [{Key, pid_port_fun_to_atom(Value)}|Acc]).
|
||||||
|
|
||||||
convert_pid_info({initial_call,{_M, F, _A}}) ->
|
convert_pid_info({initial_call,{_M, F, _A}}) ->
|
||||||
{initial_call, F};
|
{initial_call, F};
|
||||||
convert_pid_info({current_function, {M, F, A}}) ->
|
convert_pid_info({current_function, {M, F, A}}) ->
|
||||||
|
|
Loading…
Reference in New Issue