max
指定した式のうちの最大値を集積体に格納します。
void max(expr)
max
関数は、式の最大値を集積体に格納する集積関数です。
例7-25 プロセスがシステム書込みコールに費やす最大時間を表示するためにmaxを使用する方法
この例では、syscall::write:entry
プローブの起動のタイムスタンプを格納し、この値をsyscall::write:return
の起動時のタイムスタンプから減算します。最大時間は、この2つのプローブ間の時間差に基づいて計算され、実行されるプロセスごとに更新できるように集積体に格納されます。このプログラムが終了すると、集積された最大タイムスタンプ値が、組込み変数execname
で識別されるプロセスごとに表示されます。
syscall::write:entry
{
self->ts = timestamp;
}
syscall::write:return
/self->ts/
{
@time[execname] = max(timestamp - self->ts);
self->ts = 0;
}
このプログラムが終了すると、次のような出力が表示されます:
ProxyResolution 4891
firewalld 7892
RDD Process 11028
Utility Process 11344
gdbus 11474
GLXVsyncThread 14181
python3 15286
Socket Process 15294
rtkit-daemon 16547
pmdakvm 17089
NetworkManager 18246
pmdaxfs 19661
sudo 19917
...