2
在Solaris上使用DTrace,我能夠積聚在CPU的時間對於一個給定的過程(或execname)的時間間隔從開始到控制-C與下面的腳本:如何顯示使用dtrace每個進程消耗的微秒cpu?
!/usr/sbin/dtrace -qs
dtrace:::BEGIN {
total = 0;
}
sched:::on-cpu
/execname == $$1/
{
self->start = vtimestamp;
}
sched:::off-cpu
/self->start/
{
this->time = vtimestamp - self->start;
total += this->time;
self->start = 0;
}
dtrace:::END {
printf("Total Time on CPU: %d us\n",total/1000);
}
(累計時間有細粒度允許納秒/微秒積累)。
在同一時間段內,我想積累一個數組中的全部或多個進程並報告所有累積的CPU時間(^ C)。
這樣做的最好方法是什麼?