프로그램 실행 시간을 계산하는 방법은 무엇입니까?
프로그램을 작성했는데 프로그램의 시작부터 끝까지 총 실행 시간을 계산하고 싶습니다.
이거 어떻게 해?
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'으로 나누어야 합니다.또는 원하는 경우Date
오브젝트:Date myTime = new Date(duration / 1000);
그 후, 다양한 방법으로 액세스 할 수 있습니다.Date
분, 시간 등을 인쇄하다
보다 정확한 판독을 원할 경우 System.currentTimeMillis() 또는 System.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();
이미 알려진 것 외에System.currentTimeMillis()
그리고.System.nanoTime()
perf4j라고 불리는 깔끔한 라이브러리도 물론 목적에 따라 유용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/5204051/how-to-calculate-the-running-time-of-my-program
'programing' 카테고리의 다른 글
안드로이드 캔버스에 채워진 삼각형을 그리는 방법은? (0) | 2023.01.20 |
---|---|
PHP shell_exec() vs exec() (0) | 2023.01.20 |
다음 항목 중 하나가 목록에 있는지 확인하는 방법은 무엇입니까? (0) | 2023.01.20 |
JavaScript 배열에서 임의 항목 가져오기 (0) | 2023.01.20 |
자바어로 물체의 모니터는 무슨 뜻입니까?왜 이 단어를 사용하는가? (0) | 2023.01.20 |