throw Exception 실행 효율 시험

3914 단어 테스트 데이터
현재 유지보수 프로젝트를 Exception 처리 오류로 바꾸도록 설득하기 위해서 비효율적인 데이터를 만들어야 합니다.아이고......
  • 테스트 코드
  •  
            /**
             *       
             * @throws Exception
             */
            @Test
            public void testThrowEfficiency() throws Exception {
                    long times = 1000000;
                    long startTime;
                    System.out.println(times + "    ");
    
                    try {
                            recursion(0, true);
                    }
                    catch (Exception e) {
                            System.out.println("      :" + e.getStackTrace().length);
                    }
    
                    for(int count = 0; count < 10; count++) {
                            startTime = System.currentTimeMillis();
                            for (int i = 0; i < times; i++) {
                                    try {
                                            recursion(0, true);
                                    }
                                    catch (Exception e) {
                                    }
                            }
                            System.out.println("     :" + (System.currentTimeMillis() - startTime));
                            
                            startTime = System.currentTimeMillis();
                            for (int i = 0; i < times; i++) {
                                    try {
                                            recursion(0, false);
                                    }
                                    catch (Exception e) {
                                    }
                            }
                            System.out.println(" :" + (System.currentTimeMillis() - startTime));
                    }
            }
            
            private void recursion(int count, boolean isThrow) {
                    if(count == 10) {
                            if(isThrow) {
                                    throw new IllegalStateException("");
                            }
                            return;
                    }
                    recursion(count+1, isThrow);
            }
            
            public static void main(String[] args) throws Exception {
                    Test test = new MakeKeyNoTest();
                    test.testThrowEfficiency();
            }
    
    

     
  • 테스트 머신:
  • cpu: Celeron CeleronM CPU 520 @ 1.60GHz (불쌍한 내 기계...)
    메모리: 2GB
  • 테스트 결과: (시간: ms)
  •  
    BODY { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } P { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } DIV { FONT-FAMILY:Tahoma; FONT-SIZE:10pt } TD { FONT-FAMILY:Tahoma; FONT-SIZE:10pt }
    1000000 순환 테스트 이상 창고 깊이: 13 이상 존재: 2766 무: 47 이상 존재: 2890 무: 47 이상 존재: 2719 무: 47 이상 존재: 2718 무: 47 이상 존재: 2688 무: 47 이상 존재: 2718 무: 47 이상 존재: 2703 무: 32 이상 존재: 2672 무: 63 이상 존재: 2703 무: 47 이상 존재: 2703 무: 31
    1000000 순환 테스트 이상 창고 깊이: 23 이상 존재: 3688 무: 94 이상 존재: 3593 무: 94 이상 존재: 3625 무: 94 이상 존재: 3625 무: 78 이상 존재: 3922 무: 94 이상 존재: 5625 무: 437 이상 존재: 8469 무: 94 이상 존재: 4390 무: 94 이상 존재: 3594 무: 109 이상 존재: 3610 무: 93
    1000000 순환 테스트 이상 창고 깊이: 33 이상 존재: 5328 무: 141 이상 존재: 5109 무: 125 이상 존재: 5109 무: 157 이상 존재: 5093 무: 141 이상 존재: 12563 무: 125 이상 존재: 125 무: 125 이상 존재: 5218 무: 125 이상 존재: 125 무: 125 이상 존재: 5172 무: 141 이상 존재: 512525 무: 140 이상 존재: 5204 무: 125
    1000000 순환 테스트 이상 창고 깊이: 53 이상 존재: 6172 무: 234 이상 존재: 6063 무: 219 이상 존재: 6031 무: 234 이상 존재: 6094 무: 234 이상 존재: 6078 무: 219 이상 존재: 6047 무: 219 이상 존재: 6062 무: 235 이상 존재: 6031 무: 250 이상 존재: 6156 무: 235 이상 존재: 6062 무: 234 이상 존재
     
    결과 분석:
  • 창고의 깊이는 속도에 큰 영향을 미치고 기본적으로 선형적인 성장을 보인다.
  • 13층 창고 깊이에서 약 2.7초가 걸리고 매번 이상 사용 시 2.7미묘하며 일반 기계가 초당 37만 회 이상 운행할 수 있다.

  • 이상한 효율은 내가 예전에 상상했던 것보다 더 높다.
     
     
     
     

    좋은 웹페이지 즐겨찾기