Огромная разница в величине getCurrentThreadCpuTime diff и System.nanoTime() diff для фрагмента кода в Java

ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
long startCPUTime = threadBean.getCurrentThreadCpuTime();
long startTime = System.nanoTime();

// Some Java Code (No Network/Database calls) .....

long endCPUTime = threadBean.getCurrentThreadCpuTime();
long endTime = System.nanoTime();

long timeElapsedCPU = endCPUTime - startCPUTime
long latency = endTime - startTime

JVM была запущена с включенным подробным переключателем журналов GC, и журналов GC не было, пока выполнялся приведенный выше код. Тогда можно ли сделать вывод, что если существует огромная разница между фактической задержкой и истекшим временем ЦП, то поток был прерван ОС?

Я заметил огромную разницу: задержка более 1 секунды, а время увеличило время процессора до нескольких миллисекунд.

0 ответов

Другие вопросы по тегам