프로그램의 실행 시간을 계산하는 방법은 무엇입니까? [복제]
가능한 중복 :
Java에서 메소드 실행 시간을 어떻게 설정합니까?
프로그램을 작성했으며 이제 프로그램의 총 실행 시간을 처음부터 끝까지 계산하려고합니다.
어떻게해야합니까?
System.nanoTime 을 사용 하여 현재 시간을 가져 오십시오.
long startTime = System.nanoTime();
.....your program....
long endTime = System.nanoTime();
long totalTime = endTime - startTime;
System.out.println(totalTime);
위의 코드는 프로그램의 실행 시간을 나노초 단위로 인쇄합니다.
기본 메소드의 시작 부분에 다음 코드 줄을 추가하십시오.
final long startTime = System.nanoTime();
그런 다음 기본 메소드의 마지막 줄에 다음을 추가 할 수 있습니다.
final long duration = System.nanoTime() - startTime;
duration
이제 프로그램이 실행 된 시간을 나노초 단위로 포함합니다. 예를 들어 다음과 같이이 값을 인쇄 할 수 있습니다.
System.out.println(duration);
지속 시간을 초 단위로 표시하려면 값을 1'000'000'000으로 나누어야합니다. 또는 Date
객체 를 원하는 경우 : 분, 시간 등을 인쇄 Date myTime = new Date(duration / 1000);
하는 다양한 방법에 액세스 할 수 있습니다 Date
.
시스템을 사용하십시오. currentTimeMillis () 또는 시스템. 더 정확한 판독을 원하면 nanoTime (). 일반적으로 사용자에게 값을 출력해야하는 경우 밀리 초가 정확합니다. 또한, System.nanoTime()
수 따라서 당신이 방법을 사용하는 경우, 반환 값이 정확하지, 가능성이있을 수 있습니다, 음수 값을 반환합니다.
일반적으로 널리 사용되는 방법은 밀리 초입니다.
long start = System.currentTimeMillis();
...
long end = System.currentTimeMillis();
NumberFormat formatter = new DecimalFormat("#0.00000");
System.out.print("Execution time is " + formatter.format((end - start) / 1000d) + " seconds");
나노초는 일반적으로 단위 테스트 및 벤치마킹과 같은 매우 짧고 정확한 프로그램 실행을 계산하는 데 사용됩니다. 따라서 전체 프로그램 실행의 경우 밀리 초가 바람직합니다.
이에 대한 일반적인 접근 방식은 다음과 같습니다.
- 벤치 마크 시작 시점 (예 : 시작 시점)을 확인하십시오
main()
. - 코드를 실행하십시오.
- 벤치 마크 종료 시점 (예 : 종료 시점)을 확인하십시오
main()
. - 종료 시간에서 시작 시간을 빼고 적절한 단위로 변환하십시오.
힌트 : System.nanoTime()
또는을보십시오 System.currentTimeMillis()
.
응용 프로그램이 시작되는 시간을 가져 와서 응용 프로그램이 종료되는 시간과 비교해야합니다.
Wen 앱이 시작됩니다.
Calendar calendar = Calendar.getInstance();
// Get start time (this needs to be a global variable).
Date startDate = calendar.getTime();
응용 프로그램이 종료 될 때
Calendar calendar = Calendar.getInstance();
// Get start time (this needs to be a global variable).
Date endDate = calendar.getTime();
차이 (밀리 초)를 얻으려면 다음과 같이하십시오.
long sumDate = endDate.getTime() - startDate.getTime();
Beside the well-known (and already mentioned) System.currentTimeMillis()
and System.nanoTime()
there is also a neat library called perf4j which might be useful too, depending on your purpose of course.
참고URL : https://stackoverflow.com/questions/5204051/how-to-calculate-the-running-time-of-my-program
'programing tip' 카테고리의 다른 글
C #에서 여러 열거 형 값을 어떻게 전달합니까? (0) | 2020.07.28 |
---|---|
숭고한 텍스트 편집기에서 개요보기를 얻는 방법은 무엇입니까? (0) | 2020.07.28 |
BroadcastReceiver.onReceive는 항상 UI 스레드에서 실행됩니까? (0) | 2020.07.28 |
OpenSSL을 사용하여 공개 키를 추출하는 방법은 무엇입니까? (0) | 2020.07.28 |
Android : ActionBar“홈”아이콘을 앱 아이콘 이외의 것으로 변경하는 방법은 무엇입니까? (0) | 2020.07.28 |