我有一个Java进程启动一堆子进程并通过执行“kill -STOP”和“kill -CONT”(按照Suspend a child process spawned by java中给出的建议)对它们进行交错。
现在我想知道这个过程。我运行“time java [...]”
并且产生的“用户”时间大约是“实际”时间的一半(“sys”时间可以忽略不计)。
子进程是否算作“用户”时间,这没有意义,因为(除非我的代码使用的CPU比我想象的要多得多)我的java代码花费的大部分时间都花在了(或者应该是等待(通过一个wait(10000)
循环,每10秒钟唤醒一次,杀死-STOP一个进程并杀死-CONT,直到其中一个成功返回)。
调用kill
是否有很多开销(即间隔时间太短十秒)?子进程是否会计入用户时间?如果是这样,还有什么可以解释这种差异?