Mac OS X でプロセスごとのディスク I/O 統計をプログラムで取得するにはどうすればよいですか。「Activity Monitor」アプリケーションまたは「top」コマンドでは、システム全体のディスク I/O 統計しか取得できません。
参考までに PC にも同様の質問がありました。
15598 次
5 に答える
36
iotop
たとえば、(ルートとして)使用します。
iotop -C 3 10
しかし、(私にとって)最良の方法は次のとおりです。
sudo fs_usage -f filesys
于 2013-05-08T22:36:27.160 に答える
4
プログラムでこれを行う方法についての回答はここにないため、ここにいくつかの詳細情報があります。C/C++/ObjectiveC++ を使用できる場合は、libproc から情報を取得できます。この関数proc_pid_rusage
は、特定のプロセスの一連のリソース情報を提供しますが、質問に関連するものは次のとおりです。
struct rusage_info_v3 {
...
uint64_t ri_diskio_bytesread;
uint64_t ri_diskio_byteswritten;
...
};
サンプルコード:
pid_t pid = 10000;
rusage_info_current rusage;
if (proc_pid_rusage(pid, RUSAGE_INFO_CURRENT, (void **)&rusage) == 0)
{
cout << rusage.ri_diskio_bytesread << endl;
cout << rusage.ri_diskio_byteswritten << endl;
}
詳細については<libproc.h>
、 と<sys/resource.h>
を参照してください。
于 2016-08-26T14:21:37.937 に答える