[erlang-questions] top(1) in Erlang
Taavi Talvik
taavi@REDACTED
Mon Sep 17 19:01:11 CEST 2007
On Sep 17, 2007, at 7:00 PM, David King wrote:
> I'm trying to write a process monitor akin to Unix's top(1) for
> Erlang processes. Is there any way to determine how long a given
> process spent with the CPU over the last X units of time? The
> scheduler has to know this, does it expose that information? Does
> something like this already exist that I'm missing?
>
> erlang:process_info/1 returns the following for a given process:
>
> [{current_function,{hipe_icode_coordinator,coordinate,4}},
> {initial_call,{erlang,apply,2}},
> {status,waiting},
> {message_queue_len,0},
> {messages,[]},
> {links,[]},
> {dictionary,[]},
> {trap_exit,false},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.30.0>},
> {heap_size,6765},
> {stack_size,6},
> {reductions,8193},
> {garbage_collection,[{fullsweep_after,65535}]}]
>
> Is reductions close to what I want? Will that increment for things
> other than function calls? Does that matter?
Yes, reductions is what you want.
Btw, you can look at http://www.erlang.org/doc/apps/observer/
part_frame.html
and "Erlang Top" from there;)
And ../runtime_tools/src/observer_backend.erl
best regards,
taavi
More information about the erlang-questions
mailing list