[erlang-questions] top(1) in Erlang

David King <>
Mon Sep 17 18:00:38 CEST 2007


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?




More information about the erlang-questions mailing list