home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Erlang/HowTo/ListUpProcessInformations

Erlang/HowTo/ListUpProcessInformations

Erlang / HowTo / ListUpProcessInformations
id: 416 所有者: msakamoto-sf    作成日: 2009-08-02 12:39:22
カテゴリ: Erlang 

BIFsの erlang:processes/0 はPidのリストを返す。また、erlang:process_info/1 はPidを引数に取りプロセス情報のタプルのリストを返す。
lists:map()を使えば全Pidのプロセス情報のリストを取得できる。

1> lists:map(fun erlang:process_info/1, erlang:processes()).
[[{registered_name,init},
  {current_function,{init,loop,1}},
  {initial_call,{otp_ring0,start,2}},
  {status,waiting},
  {message_queue_len,0},
  {messages,[]},
  {links,[<0.4.0>,<0.5.0>,<0.2.0>]},
  {dictionary,[]},
  {trap_exit,true},
  {error_handler,error_handler},
  {priority,normal},
  {group_leader,<0.0.0>},
  {total_heap_size,1364},
  {heap_size,987},
  {stack_size,2},
  {reductions,2786},
  {garbage_collection,[{fullsweep_after,65535},{minor_gcs,3}]},
  {suspending,[]}],
 ...

Pidも戻してみたいので、次のようにしてみる。

1> lists:map(fun(X) -> {X, erlang:process_info(X)} end, erlang:processes()).
[{<0.0.0>,
  [{registered_name,init},
   {current_function,{init,loop,1}},
   {initial_call,{otp_ring0,start,2}},
   {status,waiting},
   {message_queue_len,0},
   {messages,[]},
   {links,[<0.4.0>,<0.5.0>,<0.2.0>]},
   {dictionary,[]},
   {trap_exit,true},
   {error_handler,error_handler},
   {priority,normal},
   {group_leader,<0.0.0>},
   {total_heap_size,1364},
   {heap_size,987},
   {stack_size,2},
   {reductions,2786},
   {garbage_collection,[{fullsweep_after,65535},{minor_gcs,3}]},
   {suspending,[]}]},
 ...

なおerlang:process_info/1はデバッグ用途にのみ使ってね、という記述がある。
通常用途ではerlang:erlang:process_info/2を使って、どの情報を取得するか明示的に指定する。

1> erlang:process_info(list_to_pid("<0.29.0>"), status).
{status,running}
2> erlang:process_info(list_to_pid("<0.29.0>"), [status, memory]).
[{status,running},{memory,142044}]

なおerlang:list_to_pid/1もデバッグ用途orErlang内部限定であり、一般アプリでは使うべきではない、との警告がリファレンスマニュアルには記載されている。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-08-02 12:52:44
md5:7d82bd410f8337c7645fc41bfb5eeabe
sha1:fc5f1aabc370e5c1f54b936cc02221002c5d2e92
コメント
コメントを投稿するにはログインして下さい。