avg
指定した式の算術平均を集積体に格納します。
void avg(expr)
avg
関数は、指定したD式の算術平均を返す集積関数です。
例7-2 プロセスがシステム書込みコールに費やす平均時間を表示するためにavgを使用する方法
この例では、syscall::write:entry
プローブの起動のタイムスタンプを格納し、この値をsyscall::write:return
の起動時のタイムスタンプから減算します。平均時間は、この2つのプローブ間の時間差に基づいて計算され、実行されるプロセスごとに更新できるように集積体に格納されます。このプログラムが終了すると、集計された平均タイムスタンプ値が、組込み変数execname
で識別されるプロセスごとに表示されます。
syscall::write:entry
{
self->ts = timestamp;
}
syscall::write:return
/self->ts/
{
@time[execname] = avg(timestamp - self->ts);
self->ts = 0;
}
このプログラムが終了すると、次のような出力が表示されます:
gnome-session 8260
udisks-part-id 9279
gnome-terminal 9378
lsof 14903
ip 15075
date 15371
...
ps 91792
sestatus 98374
pstree 102566
udisks-daemon 250405
gconfd-2 17880523
cat 59752284