설명 할 수없는 한 가지 문제점이 있습니다. 이 필요한 경우Java에서 메소드 실행의 실제 시간은 무엇이며 어떤 영향을 받습니까?
String numberStr = "3151312423412354315";
System.out.println(numberStr + "\n");
System.out.println("Lehman method: ");
long beginTime = System.currentTimeMillis();
System.out.println(Lehman.getFullFactorization(numberStr));
long finishTime = System.currentTimeMillis();
System.out.println((finishTime-beginTime)/1000. + " sec.");
System.out.println();
System.out.println("Lehman method: ");
beginTime = System.currentTimeMillis();
System.out.println(Lehman.getFullFactorization(numberStr));
finishTime = System.currentTimeMillis();
System.out.println((finishTime-beginTime)/1000. + " sec.");
: 다음은 주요 기능의 코드는 문자열 형식의 주요 약수의 ArrayList
을 반환 Lehman.getFullFactorization(...)
방법.
3151312423412354315
Lehman method:
[5, 67, 24473, 384378815693]
0.149 sec.
Lehman method:
[5, 67, 24473, 384378815693]
0.016 sec.
는 내가 놀랐습니다, 나는 그것을 보았다 : 여기
이 출력됩니다. 같은 방법으로 두 번째 실행이 첫 번째보다 훨씬 빠른 이유는 무엇입니까? 첫째, 메소드 실행의 첫 번째 단계에서는 JVM과 해당 자원을 실행하는 시간이 계산되지만, "주"메소드를 실행하기 전에 JVM이 시작되기 때문에 불가능하다고 생각했습니다.
그 같은? 내 말은, 초는 항상 빠르다는거야? – sgowd
알렉산더, 모든 사용자가 읽을 수 있도록 이름을 변경하십시오. 모두가 키릴 문자를 읽을 수있는 것은 아닙니다.) –