quantize
指定した式の値の二乗分布を集積体に格納します。オプションの増分を指定できます。
void quantize(expr [, uint32_t incr])
quantize
関数は、式exprのヒストグラムの情報の分布を集積する関数です。オプションの整数値incrを指定すると、出力の重み付けのために値を増分する量を決定できます。この関数を使用すると、式が返す値を簡単にグラフィカル表示できるようになります。
度数分布は常に2のべき乗の値です。各行はそれに該当する値以上かつ次の行の値未満の要素のカウント数を示します。
例7-36 プロセスごとのwrite()コールの時間分布を表示するためにquantizeを使用する方法
syscall::write:entry
{
self->ts = timestamp;
}
syscall::write:return
/self->ts/
{
@time[execname] = quantize(timestamp - self->ts);
self->ts = 0;
}
このプログラムが終了後には、次のような出力が表示されます:
bash
value ------------- Distribution ------------- count
8192 | 0
16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
32768 | 0
65536 | 0
131072 |@@@@@@@@ 1
262144 | 0
gnome-terminal
value ------------- Distribution ------------- count
4096 | 0
8192 |@@@@@@@@@@@@@ 5
16384 |@@@@@@@@@@@@@ 5
32768 |@@@@@@@@@@@ 4
65536 |@@@ 1
131072 | 0
Xorg
value ------------- Distribution ------------- count
2048 | 0
4096 |@@@@@@@ 4
8192 |@@@@@@@@@@@@@ 8
16384 |@@@@@@@@@@@@ 7
32768 |@@@ 2
65536 |@@ 1
131072 | 0
262144 | 0
524288 | 0
1048576 | 0
2097152 |@@@ 2
4194304 | 0
firefox
value ------------- Distribution ------------- count
2048 | 0
4096 |@@@ 22
8192 |@@@@@@@@@@@ 90
16384 |@@@@@@@@@@@@@ 107
32768 |@@@@@@@@@ 72
65536 |@@@ 28
131072 | 3
262144 | 0
524288 | 1
1048576 | 1
2097152 | 0
...