stddev
指定した式の標準偏差を集積体に格納します。
void stddev(expr)
stddev
関数は、式の標準偏差を返す集積関数です。
標準偏差は√((Σ(x2)/N)-(Σx/N)2)
で正確に概算されます。この値は、ほとんどのDTraceの用途に十分なものです。
例7-47 プロセスの実行にかかった時間の標準偏差を表示するためにstddevを使用する方法
この例では、syscall::execve:entry
プローブの起動のタイムスタンプを格納し、この値をsyscall::execve:return
の起動時のタイムスタンプから減算します。標準偏差は、この2つのプローブ間の時間差に基づいて計算され、実行されるプロセスごとに更新できるように集積体に格納されます。このプログラムが終了すると、集積された標準偏差値が表示されます。
syscall::execve:entry
{
self->ts = timestamp;
}
syscall::execve:return
/ self->ts /
{
t = timestamp - self->ts;
@execsd[execname] = stddev(t);
self->ts = 0;
}
END
{
printf("\nSTDDEV:");
printa(@execsd);
}
このプログラムが終了すると、次のような出力が表示されます:
STDDEV:
head 0
lsb_release 0
mkdir 0
pidof 0
pkla-check-auth 0
tr 0
uname 0
getopt 5646
basename 7061
sed 7236