2010-01-19 2 views
1

내 응용 프로그램에서 특정 작업의 성능을 비교하고 싶습니다.자바에서 가장 정확한 시간 유형?

Date 개체를 사용하는 것 외에는 더 정확한 것이 있습니까?

+1

관련 항목 : http://stackoverflow.com/questions/503877/how-can-i-measure-time-with-microsecond-precision-in-java –

+2

정확도 또는 정확도에 대해 묻고 싶습니까? 그들은 동일하지 않습니다. –

답변

7

public static long nanoTime() - 사용 가능한 가장 정밀한 시스템 타이머의 현재 값을 나노초 단위로 반환합니다.

states in his answer 자크 서사로서 :

내 생각 엔 시스템부터이다. nanoTime()은 시스템에서 정확히 밀리 초 정밀도를 가진 "가장 정확한 사용 가능한 시스템 타이머"를 사용하므로 더 나은 결과를 얻을 수 없습니다.

+1

아니요, 밀리 초 정밀도가 아닙니다. 가능한 한 훨씬 더 많은 해결 방법을 통해 훨씬 더 정확한 미디어 타이머를 사용할 수 있습니다. –

2

두 개의 시간 소인을 빼서 경과 시간을 측정하는 경우 해당 시간 소인을 얻으려면 System.nanoTime()을 사용해야합니다. 그것이 바로 그 때문입니다.

1

스레드 관리 빈의 getCurrentThreadCpuTime을 사용할 수있는 CPU 시간을 얻으려면.
그것은 나노초에서 실제 스레드가 사용하는 CPU 시간을 반환

ThreadMXBean threadMX = ManagementFactory.getThreadMXBean(); 
    long time = threadMX.getCurrentThreadCpuTime(); 

    // do something 

    time = threadMX.getCurrentThreadCpuTime() - time; // CPU time in nanoseconds 

확인하지 활성화되고 정보와 CPU 시간 측정과 같은 몇 가지 문제에 대한 documentation.