0부터 Integer.MAX_VALUE까지 더한 결과를 구하는 프로그램을 만든다고 가정하자.
더한 결과를 저장하는 변수를 sum이라고 할 때, sum을 Long 으로 하는 것과 long으로 하는 것에는 차이가 난다.
Long sum = 0L; 으로 선언하게 되면, sum의 값이 바뀔 때마다 새로운 객체가 생성되어 성능이 느려지게 된다.
실제로 아래 코드로 테스트를 해보니, Long의 경우는 6.2초 long의 경우는 0.79초로 long의 성능이 더 좋은 것을 확인할 수 있었다.
public class Main {
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
Long sum1 = 0L;
for (long i = 0; i <= Integer.MAX_VALUE; i++) {
sum1 += i;
}
long time2 = System.currentTimeMillis();
long sum2 = 0;
for (long i = 0; i <= Integer.MAX_VALUE; i++) {
sum2 += i;
}
long time3 = System.currentTimeMillis();
System.out.println("sum1 : " + (time2 - time1) + " sum2 : " + (time3 - time2));
}
}
반응형
'JAVA' 카테고리의 다른 글
AOP 용어 정리 (0) | 2023.04.16 |
---|---|
try-with-resource (0) | 2022.07.14 |
도메인 주도 설계 - 1부 동작하는 도메인 모델 만들기 (0) | 2022.04.19 |
Adapter Pattern 과 SLF4J (0) | 2021.08.27 |
Log4j 알아보기 (0) | 2021.08.16 |