728x90
반응형
public static void main(String[] args) {
// Test data
int n = 100000; // Example value for n
int[] sArray = {200, 400, 800}; // Example array of station locations
int w = 100; // Example value for w
// Measure time for the first solution
long startTime1 = System.nanoTime();
int result1 = solution1(n, sArray, w);
long endTime1 = System.nanoTime();
long duration1 = endTime1 - startTime1;
System.out.println("Execution time for solution1: " + duration1 + " nanoseconds");
// Measure time for the second solution
System.out.println("--------------------------------------------------------");
long startTime2 = System.nanoTime();
int result2 = solution2(n, sArray, w);
long endTime2 = System.nanoTime();
long duration2 = endTime2 - startTime2;
System.out.println("Execution time for solution2: " + duration2 + " nanoseconds");
}
solution1과 solution2는 같은 코드이다.
다음과 같이 분명히 같은 코드를 작성하여서 테스트하는데 시간측정 결과가 차이가 나는 경우가 발생한다.
Execution time for solution1: 335900 nanoseconds
Execution time for solution2: 15400 nanoseconds
왜 이러는지 확인해본 결과, 캐시 때문에 다음과 같이 발생하는 것으로 확인되었다.
단순히 함수로 테스트를 진행하지 말고 컴파일부터 서로 작동하게 하여 테스트 하는 방법이 좀 더 정확하게 테스트할 수 있을거 같다.
결론
같은 테스트 코드라도, 각자 다른 함수로 구현하여도, 서로 다르게 실행하여 테스트를 진행해야 함
728x90
반응형
'잡담 > 궁금증 해결' 카테고리의 다른 글
지수 표현 제거(JAVA) (0) | 2024.09.29 |
---|---|
jar 파일에 한글 입력하기 (feat. PHP, JAVA) (0) | 2024.09.09 |
heap vs TreeMap<key, list> (0) | 2024.05.19 |
Map<String, List<String>> 관련 clear() (0) | 2024.02.26 |
변수 선언 후 인자 전달 vs 인자 전달 (0) | 2024.02.14 |
댓글