一連の子プロセスを開始し、「kill-STOP」と「kill-CONT」を実行してそれらをインターリーブするJavaプロセスがあります(javaによって生成された子プロセスの一時停止で与えられた提案に従います) 。
今、私はプロセスの時間を計りたいと思います。「timejava[...]」を実行します
結果として得られる「ユーザー」時間は「実際の」時間の約半分です(「sys」時間はごくわずかです)。
子プロセスが「ユーザー」時間としてカウントされるかどうかに関係なく、これは意味がありません。なぜなら(私のコードが思ったよりもかなり多くのCPUを使用している場合を除いて)、Javaコードによって費やされる時間のほとんどが費やされる(またはむしろ費やされるべきである)からです。待機中(wait(10000)
10秒ごとにウェイクアップして1つのプロセスを強制終了し、そのうちの1つが正常に戻るまで別のプロセスを強制終了するループを介して)。
呼び出しに多くのオーバーヘッドがありますkill
か(つまり、間隔が10秒短すぎます)?子プロセスはユーザー時間にカウントされますか?もしそうなら、他に何が不一致を説明することができますか?