Я пишу планировщик Hadoop. Мое планирование требует определения процессорного времени, затрачиваемого каждой задачей Map/Reduce.
Я знаю это:
Класс TaskInProgress поддерживает значения execStartTime и execFinishTime, которые являются временем настенных часов, когда процесс был запущен и завершен, но они не точно указывают время ЦП, потребляемое задачей.
Каждая задача выполняется в новой JVM, и я мог бы использовать OperatingSystemMXBean.getProcessCpuTime (), но опять же описание метода говорит мне: "Возвращает процессорное время, использованное процессом, на котором виртуальная Java машина работает за наносекунды». Я не совсем понимаю, хочу ли я этого.