2012-06-15 8 views
1

Почему происходит колебание времени выполнения и времени процессора, каждый раз, когда я запускаю приведенный ниже код в Netbeans. Использует ли мой процессор также каждый раз. И как мне найти использование ЦП для приведенного ниже кода.Время выполнения и временные колебания процесса

class test{ 
static com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); 

public static void main(String[] args) throws InterruptedException { 


     long start1 = System.currentTimeMillis(); 
     long pstart1 = mxbean.getProcessCpuTime(); 
     long pstart2 = TimeUnit.MILLISECONDS.convert(pstart1, TimeUnit.NANOSECONDS);   

    for (int i = 0; i < 10000; i++) {  

      System.out.println("hello"); 

    }  

     long end1 = System.currentTimeMillis(); 
     long pend1 = mxbean.getProcessCpuTime(); 
     long pend2 = TimeUnit.MILLISECONDS.convert(pend1, TimeUnit.NANOSECONDS); 
     float pdif = pend2 - pstart2; 
     float edif = end1 - start1; 

     System.out.println(edif); 
     System.out.println(pdif); 

} 
} 
+0

Да, это может варьироваться в зависимости от доступности процессора для jvm –

+0

Затем, как определить точное время выполнения и время процессора – Raj

+0

Имеются профилирующие устройства для измерения. и обычно вы измеряете средний результат n try –

ответ

1

Вы выполняете в основном IO, так что вы очень зависите от поведения ОС.

Millis-seconds не очень точный и может иметь разрешение более 1 мс. например currentTimeMillis имеет разрешение около 15 мс в Windows XP. Используемое время процессора имеет разрешение 10 мс во многих системах Unix.

Если вы сделаете задачу ЦП привязана вместо привязки IO и запустите ее дольше, вы должны увидеть более последовательные тайминги.

+0

как мне найти использование процессора для вышеуказанного кода? – Raj

+0

Метод, который вы используете, является лучшим для этого. Учитывая, что у вас непродолжительная задача, связанная с IO, CPU вряд ли вам многое скажет. В более реалистичном примере вам может быть полезно. –

Смежные вопросы