min

指定した式のうちの最小値を集積体に格納します。

void min(expr)

min関数は、式の最小値を集積体に格納する集積関数です。

例7-26 プロセスがシステム書込みコールに費やす最小時間を表示するためにmaxを使用する方法

この例では、syscall::write:entryプローブの起動のタイムスタンプを格納し、この値をsyscall::write:returnの起動時のタイムスタンプから減算します。最小時間は、この2つのプローブ間の時間差に基づいて計算され、実行されるプロセスごとに更新できるように集積体に格納されます。このプログラムが終了すると、集積された最小タイムスタンプ値が、組込み変数execnameで識別されるプロセスごとに表示されます。

syscall::write:entry
{
  self->ts = timestamp;
}

syscall::write:return
/self->ts/
{
  @time[execname] = min(timestamp - self->ts);
  self->ts = 0;
}

このプログラムが終了すると、次のような出力が表示されます:

  IPC I/O Parent                                                 1087
  gmain                                                          1091
  libvirt-dbus                                                   1501
  pmcd                                                           1601
  libvirtd                                                       1615
  threaded-ml                                                    1673
  Timer                                                          2130
  NetworkManager                                                 2140
  Socket Thread                                                  2275
  InputThread                                                    2420
...