avg
指定した式の算術平均を集積体に格納します。
void avg(expr)
avg関数は、指定したD式の算術平均を返す集積関数です。
例8-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