컴퓨터 상식
[Java] Boxing vs No Boxing 속도 차이
우리로
2020. 11. 16. 14:34

결과부터 말하자면 별로 차이 안난다.
import java.util.function.IntPredicate;
import java.util.function.Predicate;
public class study {
public static void main(String[] args) {
IntPredicate evenNumbers = (int i) -> i % 2 == 0;
Predicate<Integer> oddNumbers = (Integer i) -> i % 2 != 0;
int beforeTime, afterTime, result;
int circle = 100000000;
// Warm-up
// beforeTime = (int) System.currentTimeMillis();
// for (int i = 0; i < circle; i++) {
// evenNumbers.test(1000);
// oddNumbers.test(1000);
// }
// afterTime = (int) System.currentTimeMillis();
// Warm- up end
beforeTime = (int) System.currentTimeMillis();
for (int i = 0; i < circle; i++) evenNumbers.test(1000); // NoBoxing
afterTime = (int) System.currentTimeMillis();
System.out.println("No boxing : " + (afterTime - beforeTime));
beforeTime = (int) System.currentTimeMillis();
for (int i = 0; i < circle; i++) oddNumbers.test(1000); // Boxing
afterTime = (int) System.currentTimeMillis();
System.out.println("BOXING : " + (afterTime - beforeTime));
}
}
100,000,000 번 연산할 때 Boxing과 Noboxing의 차이를 알고 싶어서 실험을 진행했는데
연산 횟수가 1억인거 치고는... 4밀리초 정도 차이가 났다.
생각보다 차이가 많이 나지않아서 시무룩...