次のガイドラインのように、特定のPIDではなく順番にPIDを試してみたいと思います。
perf stat -p <PID> -e cycles,instructions,cache-references,cache-
misses,bus-cycles -a sleep 10
#this is example of 1 specefic PID
perf stat -p 3347 -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10
すべてのPIDを試したいのですが、すべてのPIDを試したい場合は、<PID>の代わりに何を書くべきかわかりません。
ベストアンサー1
繰り返したいならみんなシステムで実行されているpid(/proc
dirが必要であり、とは異なりますMac/*BSD
):
for pid in /proc/[0-9]*; do printf '%s\n' "${pid##*/}"; done
だから:
for pid in /proc/[0-9]*; do
perf stat -p "${pid##*/}" -e cycles,instructions,cache-references,cache-misses,bus-cycles -a 2>&1 >> perf.txt
sleep 10
done
逆に、リソース集約的なプロセスに基づいている場合は、top
次の方法があります。
for pid in $(top -bn1 | awk '/ PID /{p=1;next}(p==1){print $1}'); do ...
削除されました。n1
top
Mac/*BSD