[자바] 제곱 속도 - 직접 만든 제곱 함수가 Math.pow() 보다 빠를 때도 있어요
* 1.0의 제곱을 20억 번 할 경우 Math.pow()가 직접 만든 제곱 함수보다 세 배 느렸습니다.
* 제곱 횟수를 훨씬 늘리면 시간 차이가 줄어들던데, 아마 JIT 컴파일 때문이 아닐까 추측만 해 보았습니다.
* 실험 결과와 코드는 아래와 같습니다.
걸린 시간 (Math.pow 함수, 20억 회): 6 ms
걸린 시간 (직접 만든 제곱, 20억 회): 2 ms
public class 제곱속도측정 {
public static double 직접만든제곱(double 숫자) {
return 숫자*숫자;
}
public static void main(String[] args) {
long 시작시간1 = System.currentTimeMillis();
for(int i=0; i<2000000000; ++i) {
Math.pow(1.0, 2);
}
long 끝시간1 = System.currentTimeMillis();
System.out.println("걸린 시간 (Math.pow 함수, 20억 회): " + (끝시간1-시작시간1) + " ms");
long 시작시간2 = System.currentTimeMillis();
for(int i=0; i<2000000000; ++i) {
직접만든제곱(1.0);
}
long 끝시간2 = System.currentTimeMillis();
System.out.println("걸린 시간 (직접 만든 제곱, 20억 회): " + (끝시간2-시작시간2) + " ms");
}
}
'개발 > 자바' 카테고리의 다른 글
[자바] 밑줄 (_) 이 들어가는 JNI 함수명 (0) | 2018.11.30 |
---|---|
[자바] 배열 내용 출력하기 (Arrays.toString()) (0) | 2018.05.31 |
[자바] JNI 시그니처 (Signiture) (0) | 2018.02.27 |
[코틀린] 문자열에서 부분 문자열 추출하기 (슬라이싱) (0) | 2018.01.29 |
[자바] 코드 실행 시간 측정하기 (System.currentTimeMillis()) (0) | 2018.01.18 |