Published on
👁️

JPA N+1 문제 해결에 따른 성능 변화 분석 - 4. 테스트 결과 3

Authors
  • avatar
    Name
    River
    Twitter

목차 페이지로 이동

데이터 규모에 따른 JPA N+1 문제 진단과 해결 전략 비교
(Fetch Join, Entity Graph, Batch Fetching)

4.3. 테스트 케이스 3 결과
테스트 케이스 설명

대규모 데이터

  • Member : 500명
  • Animal : 1000마리
  • AnimalCase : 1000개 (Member 당 2개)
  • Protection : 1,000,000개 (AnimalCase 당 1,000개)

Batch Fetching

  • default_batch_fetch_size: 100

API 버전

  • Pure : 해결 전략 없는 상태 (N+1 문제 존재)
  • Optimized : Fetch Join 적용
  • Graph : Entity Graph 적용
  • Original : 프로젝트 끝날 때 상태 (일부 Fetch Join 적용됨)
쿼리 분석 결과

(1)1회차


========================================================================================================================
API 버전 비교 분석 보고서
========================================================================================================================

1. 요약 정보

---

분석 대상 API 버전: 4
- original: /api/v1/protections/my-cases (호출 횟수: 1)
- pure: /api/v1/protections/pure/my-cases (호출 횟수: 1)
- optimized: /api/v1/protections/optimized/my-cases (호출 횟수: 1)
- graph: /api/v1/protections/graph/my-cases (호출 횟수: 1)

2. 회차별 응답 시간 비교

---

### 응답 시간 (ms)

응답 시간: original (986) / pure (94) / optimized (100) / graph (84)

### 쿼리 수

쿼리 수: original (1012) / pure (10) / optimized (4) / graph (4)

### DB 접근 시간 (ms)

DB 시간: original (53.0) / pure (26.0) / optimized (31.0) / graph (20.0)

### 지연 로딩 횟수

지연 로딩: original (2008) / pure (2005) / optimized (2006) / graph (2006)

### 반복 쿼리 패턴 분석

#### original 버전 반복 쿼리:

1. 횟수: 999 전체 쿼리: select s1_0.id, s1_0.address, s1_0.business_registration_number, s1_0.created_at, s1_0.latitude, s1_0.longitude, s1_0.modified_at, s1_0.name, s1_0.closed_days, s1_0.weekday_time, s1_0.weekend_time, s1_0.owner, s1_0.save_target_animal, sm1_0.id, sm1_0.address, sm1_0.api_key, sm1_0.birth_date, sm1_0.created_at, sm1_0.email, sm1_0.gender, sm1_0.login_type, sm1_0.marketing_agree, sm1_0.modified_at, sm1_0.nickname, oap1_0.member_id, oap1_0.created_at, oap1_0.google_connected, oap1_0.google_connected_at, oap1_0.google_email, oap1_0.google_modified_at, oap1_0.google_provider_id, oap1_0.kakao_connected, oap1_0.kakao_connected_at, oap1_0.kakao_email, oap1_0.kakao_modified_at, oap1_0.kakao_provider_id, oap1_0.modified_at, oap1_0.naver_connected, oap1_0.naver_connected_at, oap1_0.naver_email, oap1_0.naver_modified_at, oap1_0.naver_provider_id, sm1_0.password, sm1_0.phone_number, sm1_0.profile_image_url, sm1_0.role, sm1_0.status, s1_0.tel, s1_0.vet_person_count from shelters s1_0 left join members sm1_0 on sm1_0.id=s1_0.member_id left join oauth_providers oap1_0 on sm1_0.id=oap1_0.member_id where s1_0.member_id=7
 ID 값들: 7, 4, 5, 6, 8, 9, 10, 11, 12, 13989...

#### pure 버전 반복 쿼리:

반복 패턴 없음

#### optimized 버전 반복 쿼리:

반복 패턴 없음

#### graph 버전 반복 쿼리:

반복 패턴 없음

3. 성능 지표 요약

---

### 버전별 성능 비교 표:

| 성능 지표           | original | pure | optimized | graph |
| ------------------- | -------- | ---- | --------- | ----- |
| 응답 시간 (ms)      | 986      | 94   | 100       | 84    |
| 쿼리 수             | 1012     | 10   | 4         | 4     |
| DB 시간 (ms)        | 53.0     | 26.0 | 31.0      | 20.0  |
| 지연 로딩           | 2008     | 2005 | 2006      | 2006  |
| 쿼리당 DB 시간 (ms) | 0.05     | 2.60 | 7.75      | 5.00  |

### 성능 지표별 최적 버전:

- 응답 시간: graph (84ms)
- 쿼리 효율성: optimized (4)
- DB 효율성: original (0.05ms/쿼리)

(2)2회차

========================================================================================================================
                                  API 버전 비교 분석 보고서
========================================================================================================================

1. 요약 정보
------------------------------------------------------------------------------------------------------------------------
분석 대상 API 버전: 4- original: /api/v1/protections/my-cases (호출 횟수: 1)
- pure: /api/v1/protections/pure/my-cases (호출 횟수: 1)
- optimized: /api/v1/protections/optimized/my-cases (호출 횟수: 1)
- graph: /api/v1/protections/graph/my-cases (호출 횟수: 1)

2. 회차별 응답 시간 비교
------------------------------------------------------------------------------------------------------------------------

### 응답 시간 (ms)
응답 시간: original (1072) / pure (64) / optimized (68) / graph (64)

### 쿼리 수
쿼리 수: original (1012) / pure (10) / optimized (4) / graph (4)

### DB 접근 시간 (ms)
DB 시간: original (44.0) / pure (11.0) / optimized (27.0) / graph (20.0)

### 지연 로딩 횟수
지연 로딩: original (2008) / pure (2005) / optimized (2006) / graph (2006)

### 반복 쿼리 패턴 분석

#### original 버전 반복 쿼리:
1. 횟수: 999  전체 쿼리: select s1_0.id, s1_0.address, s1_0.business_registration_number, s1_0.created_at, s1_0.latitude, s1_0.longitude, s1_0.modified_at, s1_0.name, s1_0.closed_days, s1_0.weekday_time, s1_0.weekend_time, s1_0.owner, s1_0.save_target_animal, sm1_0.id, sm1_0.address, sm1_0.api_key, sm1_0.birth_date, sm1_0.created_at, sm1_0.email, sm1_0.gender, sm1_0.login_type, sm1_0.marketing_agree, sm1_0.modified_at, sm1_0.nickname, oap1_0.member_id, oap1_0.created_at, oap1_0.google_connected, oap1_0.google_connected_at, oap1_0.google_email, oap1_0.google_modified_at, oap1_0.google_provider_id, oap1_0.kakao_connected, oap1_0.kakao_connected_at, oap1_0.kakao_email, oap1_0.kakao_modified_at, oap1_0.kakao_provider_id, oap1_0.modified_at, oap1_0.naver_connected, oap1_0.naver_connected_at, oap1_0.naver_email, oap1_0.naver_modified_at, oap1_0.naver_provider_id, sm1_0.password, sm1_0.phone_number, sm1_0.profile_image_url, sm1_0.role, sm1_0.status, s1_0.tel, s1_0.vet_person_count from shelters s1_0 left join members sm1_0 on sm1_0.id=s1_0.member_id left join oauth_providers oap1_0 on sm1_0.id=oap1_0.member_id where s1_0.member_id=7
  ID 값들: 7, 4, 5, 6, 8, 9, 10, 11, 12, 13989...

#### pure 버전 반복 쿼리:
반복 패턴 없음

#### optimized 버전 반복 쿼리:
반복 패턴 없음

#### graph 버전 반복 쿼리:
반복 패턴 없음

3. 성능 지표 요약
------------------------------------------------------------------------------------------------------------------------

### 버전별 성능 비교 표:
| 성능 지표 | original | pure | optimized | graph |
| --- | --- | --- | --- | --- |
| 응답 시간 (ms) | 1072 | 64 | 68 | 64 |
| 쿼리 수 | 1012 | 10 | 4 | 4 |
| DB 시간 (ms) | 44.0 | 11.0 | 27.0 | 20.0 |
| 지연 로딩 | 2008 | 2005 | 2006 | 2006 |
| 쿼리당 DB 시간 (ms) | 0.04 | 1.10 | 6.75 | 5.00 |

### 성능 지표별 최적 버전:
- 응답 시간: pure (64ms)
- 쿼리 효율성: optimized (4)
- DB 효율성: original (0.04ms/쿼리)
K6 부하 테스트 결과

(1)K6 시나리오 설명

(주의 !) P6Spy나 다른 로그 시스템을 끄지 않고 K6 테스트를 로컬에서 하는 경우 메모리 부족이 생길 수 있다.

  1. 대량의 쿼리가 발생 ⇒ P6Spy의 로깅 처리 ⇒ CPU, 메모리 사용 증가 및 로그 파일 생성으로 디스크 I/O 증가
  2. 로깅 작업 자체도 많은 임시 객체를 생성한다. ⇒ JVM Heap에 영향을 준다.
  3. 디스크 I/O 증가는 CPU, 메모리 등 전반적으로 영향을 많이 준다.
  4. 소규모 데이터에선 영향이 크지 않다.

  • K6 시나리오
    • 사용자 로그인
    • 시작 : 5명의 동시 사용자로 10초간 진행
    • 단계적 증가 : 20명 → 50명 → 100명으로 각 30초씩 증가
    • 최대 부하 유지 : 100명의 사용자로 30초간 유지
    • 마무리 : 5명으로 감소하여 10초간 진행

(2)

Original 버전

1회차

요약 ========================================================= 총 요청 수: 1156 테스트 기간:
146.3939811TPS (초당 트랜잭션): 7.90

응답 시간 (ms): - 평균: 5624.10 - 최소: 73.89 - 중앙값: 5714.22 - 최대: 16054.07 - p90: 9946.28 - p95: 10083.46 - p99: 10349.75 - p99.9: 14508.16

# 실패율: 0.00%

{
"apiVersion": "original",
"summary": {
"totalRequests": 1156,
"testDuration": 146.3939811,
"tps": 7.896499509842212
},
"responseTime": {
"avg": 5624.100092214534,
"min": 73.8854,
"med": 5714.2207,
"max": 16054.0668,
"p90": 9946.2812,
"p95": 10083.462599999999,
"p99": 10349.751355000004
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 5617.959016089962,
"http_req_connecting": 0.10636470588235292,
"http_req_sending": 0.012886245674740485,
"http_req_receiving": 6.12818987889273
}

running (2m26.4s), 000/100 VUs, 1155 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s  
 ERRO[0146] thresholds on metrics 'http_req_duration' have been crossed

2회차

=========================================================
            original 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 1143
테스트 기간: 147.1542738TPS (초당 트랜잭션): 7.77

응답 시간 (ms):
  - 평균: 5759.05
  - 최소: 73.08
  - 중앙값: 5791.08
  - 최대: 17820.30
  - p90: 10259.13
  - p95: 10361.81
  - p99: 10511.15
  - p99.9: 13409.08

실패율: 0.00%
=========================================================

{
    "apiVersion": "original",
    "summary": {
        "totalRequests": 1143,
        "testDuration": 147.1542738,
        "tps": 7.767358503997456
    },
    "responseTime": {
        "avg": 5759.052985301845,
        "min": 73.0757,
        "med": 5791.0758,
        "max": 17820.3039,
        "p90": 10259.127180000001,
        "p95": 10361.80576,
        "p99": 10511.151151999999
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 5752.931030971129,
    "http_req_connecting": 0.11283727034120733,
    "http_req_sending": 0.009685826771653545,
    "http_req_receiving": 6.112268503937019
}

running (2m27.2s), 000/100 VUs, 1142 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s
ERRO[0147] thresholds on metrics 'http_req_duration' have been crossed

3회차

요약 ========================================================= 총 요청 수: 1142 테스트 기간:
146.6239706TPS (초당 트랜잭션): 7.79

응답 시간 (ms): - 평균: 5744.32 - 최소: 76.40 - 중앙값: 5900.83 - 최대: 14449.41 - p90: 10055.98 - p95: 10162.95 - p99: 10331.48 - p99.9: 14392.85

# 실패율: 0.00%

{
"apiVersion": "original",
"summary": {
"totalRequests": 1142,
"testDuration": 146.6239706,
"tps": 7.788630981188283
},
"responseTime": {
"avg": 5744.322276970234,
"min": 76.3976,
"med": 5900.831700000001,
"max": 14449.4128,
"p90": 10055.97891,
"p95": 10162.953615,
"p99": 10331.482920999999
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 5738.090273992995,
"http_req_connecting": 0.11231558669001755,
"http_req_sending": 0.010659457092819614,
"http_req_receiving": 6.221343520140092
}

running (2m26.6s), 000/100 VUs, 1141 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s  
 ERRO[0146] thresholds on metrics 'http_req_duration' have been crossed

(3)Pure 버전

1회차

=========================================================
            pure 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6483
테스트 기간: 141.5217709TPS (초당 트랜잭션): 45.81

응답 시간 (ms):
  - 평균: 99.70
  - 최소: 46.05
  - 중앙값: 95.10
  - 최대: 335.41
  - p90: 149.16
  - p95: 171.62
  - p99: 225.98
  - p99.9: 303.59

실패율: 0.00%
=========================================================

{
    "apiVersion": "pure",
    "summary": {
        "totalRequests": 6483,
        "testDuration": 141.5217709,
        "tps": 45.80920630636342
    },
    "responseTime": {
        "avg": 99.69555003856246,
        "min": 46.0503,
        "med": 95.1008,
        "max": 335.4068,
        "p90": 149.15706,
        "p95": 171.62016999999997,
        "p99": 225.97748000000016
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 94.00096842511145,
    "http_req_connecting": 0.01792754897424033,
    "http_req_sending": 0.012752845904673757,
    "http_req_receiving": 5.681828767545882
}

running (2m21.5s), 000/100 VUs, 6482 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s

2회차

========================================================= 총 요청 수: 6309 테스트 기간:
141.31593909999998TPS (초당 트랜잭션): 44.64

응답 시간 (ms): - 평균: 119.75 - 최소: 45.24 - 중앙값: 96.26 - 최대: 809.52 - p90: 199.37 - p95: 278.66 - p99: 514.42 - p99.9: 715.87

# 실패율: 0.00%

{
"apiVersion": "pure",
"summary": {
"totalRequests": 6309,
"testDuration": 141.31593909999998,
"tps": 44.64464546731375
},
"responseTime": {
"avg": 119.74778311935346,
"min": 45.2396,
"med": 96.258,
"max": 809.5182,
"p90": 199.36601999999996,
"p95": 278.66349999999994,
"p99": 514.4164720000001
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 110.80498963385648,
"http_req_connecting": 0.018401505785385953,
"http_req_sending": 0.1497593437945792,
"http_req_receiving": 8.793034141702316
}

running (2m21.3s), 000/100 VUs, 6308 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s

3회차

=========================================================
            pure 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6490
테스트 기간: 141.2998101TPS (초당 트랜잭션): 45.93

응답 시간 (ms):
  - 평균: 99.79
  - 최소: 44.93
  - 중앙값: 93.46
  - 최대: 394.94
  - p90: 150.61
  - p95: 174.61
  - p99: 257.01
  - p99.9: 340.33

실패율: 0.00%
=========================================================

{
    "apiVersion": "pure",
    "summary": {
        "totalRequests": 6490,
        "testDuration": 141.2998101,
        "tps": 45.9307057483441
    },
    "responseTime": {
        "avg": 99.79471771956848,
        "min": 44.9283,
        "med": 93.4575,
        "max": 394.9402,
        "p90": 150.60574000000003,
        "p95": 174.610335,
        "p99": 257.0123079999996
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 94.13563431432952,
    "http_req_connecting": 0.016404591679506933,
    "http_req_sending": 0.015708166409861325,
    "http_req_receiving": 5.643375238828974
}

running (2m21.3s), 000/100 VUs, 6489 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s

(4)

Optimized 버전

1회차

요약 ========================================================= 총 요청 수: 5691 테스트 기간:
141.30876120000002TPS (초당 트랜잭션): 40.27

응답 시간 (ms): - 평균: 229.71 - 최소: 60.37 - 중앙값: 175.50 - 최대: 1203.92 - p90: 434.94 - p95: 507.30 - p99: 685.99 - p99.9: 986.96

# 실패율: 0.00%

{
"apiVersion": "optimized",
"summary": {
"totalRequests": 5691,
"testDuration": 141.30876120000002,
"tps": 40.273511363851654
},
"responseTime": {
"avg": 229.71026396063974,
"min": 60.3708,
"med": 175.4988,
"max": 1203.9199,
"p90": 434.9413,
"p95": 507.29965000000004,
"p99": 685.9917800000012
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 215.2332225443681,
"http_req_connecting": 0.04163278861360043,
"http_req_sending": 0.4583382533825342,
"http_req_receiving": 14.01870316288874
}

running (2m21.3s), 000/100 VUs, 5690 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s

2회차


=========================================================
            optimized 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 5634
테스트 기간: 141.1725684TPS (초당 트랜잭션): 39.91

응답 시간 (ms):
  - 평균: 227.89
  - 최소: 59.17
  - 중앙값: 172.29
  - 최대: 1164.50
  - p90: 444.12
  - p95: 525.17
  - p99: 699.31
  - p99.9: 993.67

실패율: 0.00%
=========================================================

{
    "apiVersion": "optimized",
    "summary": {
        "totalRequests": 5634,
        "testDuration": 141.1725684,
        "tps": 39.908603093743814
    },
    "responseTime": {
        "avg": 227.88780376286758,
        "min": 59.1739,
        "med": 172.2862,
        "max": 1164.5023,
        "p90": 444.12026,
        "p95": 525.1700999999994,
        "p99": 699.307276
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 210.92106700390465,
    "http_req_connecting": 0.05288123890663826,
    "http_req_sending": 0.7893240504082358,
    "http_req_receiving": 16.17741270855524
}

running (2m21.2s), 000/100 VUs, 5633 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s

3회차

요약 ========================================================= 총 요청 수: 6069 테스트 기간:
141.0763875TPS (초당 트랜잭션): 43.02

응답 시간 (ms): - 평균: 178.47 - 최소: 59.77 - 중앙값: 152.66 - 최대: 600.04 - p90: 315.46 - p95: 352.31 - p99: 435.71 - p99.9: 495.66

# 실패율: 0.00%

{
"apiVersion": "optimized",
"summary": {
"totalRequests": 6069,
"testDuration": 141.0763875,
"tps": 43.01924728544668
},
"responseTime": {
"avg": 178.46632484758652,
"min": 59.7717,
"med": 152.661,
"max": 600.0363,
"p90": 315.46083999999996,
"p95": 352.30586,
"p99": 435.7102199999999
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 172.71618233646387,
"http_req_connecting": 0.01856918767507003,
"http_req_sending": 0.02067128027681661,
"http_req_receiving": 5.7294712308452835
}

running (2m21.1s), 000/100 VUs, 6068 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s

(5)Graph 버전

1회차

=========================================================
            graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6225
테스트 기간: 141.46490400000002TPS (초당 트랜잭션): 44.00

응답 시간 (ms):
  - 평균: 147.04
  - 최소: 51.67
  - 중앙값: 125.89
  - 최대: 653.14
  - p90: 251.26
  - p95: 282.69
  - p99: 362.91
  - p99.9: 437.68

실패율: 0.00%
=========================================================

{
    "apiVersion": "graph",
    "summary": {
        "totalRequests": 6225,
        "testDuration": 141.46490400000002,
        "tps": 44.003847060186736
    },
    "responseTime": {
        "avg": 147.03605182329335,
        "min": 51.6661,
        "med": 125.8893,
        "max": 653.1363,
        "p90": 251.26348000000007,
        "p95": 282.69115999999985,
        "p99": 362.909504
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 140.83556514056244,
    "http_req_connecting": 0.01926419277108434,
    "http_req_sending": 0.032319196787148605,
    "http_req_receiving": 6.16816748594377
}


running (2m21.5s), 000/100 VUs, 6224 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s

2회차


=========================================================
graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6235
테스트 기간: 141.4793021TPS (초당 트랜잭션): 44.07

응답 시간 (ms): - 평균: 150.38 - 최소: 51.73 - 중앙값: 129.90 - 최대: 668.83 - p90: 257.11 - p95: 304.19 - p99: 413.78 - p99.9: 543.37

# 실패율: 0.00%

{
"apiVersion": "graph",
"summary": {
"totalRequests": 6235,
"testDuration": 141.4793021,
"tps": 44.0700505830386
},
"responseTime": {
"avg": 150.38309448275805,
"min": 51.7288,
"med": 129.9017,
"max": 668.8251,
"p90": 257.11278,
"p95": 304.19451999999995,
"p99": 413.77555199999995
},
"failRate": 0,
"vus_max": 100,
"http_req_waiting": 144.00777674418552,
"http_req_connecting": 0.019201475541299123,
"http_req_sending": 0.05509717722534081,
"http_req_receiving": 6.320220561347213
}

running (2m21.5s), 000/100 VUs, 6234 complete and 0 interrupted iterations  
 default[======================================] 000/100 VUs 2m20s

3회차

=========================================================
            graph 버전 성능 테스트 결과 요약
=========================================================
총 요청 수: 6229
테스트 기간: 141.39998459999998TPS (초당 트랜잭션): 44.05

응답 시간 (ms):
  - 평균: 143.59
  - 최소: 51.57
  - 중앙값: 119.99
  - 최대: 498.85
  - p90: 254.17
  - p95: 288.40
  - p99: 368.25
  - p99.9: 437.10

실패율: 0.00%
=========================================================

{
    "apiVersion": "graph",
    "summary": {
        "totalRequests": 6229,
        "testDuration": 141.39998459999998,
        "tps": 44.05233860258851
    },
    "responseTime": {
        "avg": 143.5939359929361,
        "min": 51.5711,
        "med": 119.9932,
        "max": 498.8491,
        "p90": 254.16594,
        "p95": 288.40076,
        "p99": 368.24985600000025
    },
    "failRate": 0,
    "vus_max": 100,
    "http_req_waiting": 137.34178068710884,
    "http_req_connecting": 0.022506052335848462,
    "http_req_sending": 0.034450874939797725,
    "http_req_receiving": 6.217704430887788
}

running (2m21.4s), 000/100 VUs, 6228 complete and 0 interrupted iterations
default[======================================] 000/100 VUs  2m20s
GC 로그 분석 결과

(1)Original 버전

1회차

============================================
        GC-API 상관관계 분석 보고서        
============================================

분석 시간: 2025-05-02 07:16:34
로그 파일: results\temp_original_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 123
GC 소요 시간: 812.20ms
평균 GC 시간: 6.60ms
최대 GC 일시 정지 시간: 16.34ms
총 회수 메모리량: 65076MB
평균 메모리 회수량: 529.07MB
테스트 기간: 137.20초당 GC 발생 수: 0.8965
분당 GC 발생 수: 53.79

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 123

## 2. API 통계 (GC 추출)

API 요청 수: 1155
API 실행 시간: 4216971.00ms
평균 API 응답 시간: 3651.06ms
최소 API 응답 시간: 626.00ms
최대 API 응답 시간: 9789.00ms
테스트 기간: 145.01TPS(초당 트랜잭션): 7.96
P90 응답 시간: 7428.40ms
P95 응답 시간: 8409.20ms
P99 응답 시간: 9339.50ms

API 상태 코드 분포: - 200: 1155

API 버전 분포: - original: 1155

## 3. K6 성능 지표

API 버전: original
총 요청 수: 1156
테스트 기간: 146.39TPS: 7.90
평균 응답 시간: 5624.10ms
최소 응답 시간: 73.89ms
중간값 응답 시간: 5714.22ms
최대 응답 시간: 16054.07ms
P90 응답 시간: 9946.28ms
P95 응답 시간: 10083.46ms
P99 응답 시간: 10349.75ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 5617.96ms - 연결 시간(connecting): 0.11ms - 송신 시간(sending): 0.01ms - 수신 시간(receiving): 6.13ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 123
GC 발생 API 요청 수: 1087
GC 미발생 API 요청 수: 68
전체 API 대비 GC 발생 API 비율: 94.11%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 3830.75ms - GC 미발생 API 평균 응답 시간: 778.57ms - 응답 시간 차이: 3052.18ms - GC 영향 비율: 392.02%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 8436.50ms - GC 미발생 API P95 응답 시간: 962.55ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 665.00ms - GC 미발생 API 최소 응답 시간: 626.00ms - GC 발생 API 최대 응답 시간: 9789.00ms - GC 미발생 API 최대 응답 시간: 1036.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.106494
요청당 메모리 회수량: 56.34MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPSGC 발생 수: 15.44

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 64.92%

2회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 07:26:14
로그 파일: results\temp_original_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 122
GC 소요 시간: 822.60ms
평균 GC 시간: 6.74ms
최대 GC 일시 정지 시간: 13.99ms
총 회수 메모리량: 64583MB
평균 메모리 회수량: 529.37MB
테스트 기간: 141.19초당 GC 발생 수: 0.8641
분당 GC 발생 수: 51.84

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 122

## 2. API 통계 (GC 추출)
API 요청 수: 1142
API 실행 시간: 4176882.00ms
평균 API 응답 시간: 3657.51ms
최소 API 응답 시간: 645.00ms
최대 API 응답 시간: 10308.00ms
테스트 기간: 145.72TPS(초당 트랜잭션): 7.84
P90 응답 시간: 7644.70ms
P95 응답 시간: 8831.85ms
P99 응답 시간: 9682.22ms

API 상태 코드 분포:
  - 200: 1142

API 버전 분포:
  - original: 1142

## 3. K6 성능 지표
API 버전: original
총 요청 수: 1143
테스트 기간: 147.15TPS: 7.77
평균 응답 시간: 5759.05ms
최소 응답 시간: 73.08ms
중간값 응답 시간: 5791.08ms
최대 응답 시간: 17820.30ms
P90 응답 시간: 10259.13ms
P95 응답 시간: 10361.81ms
P99 응답 시간: 10511.15ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 5752.93ms
  - 연결 시간(connecting): 0.11ms
  - 송신 시간(sending): 0.01ms
  - 수신 시간(receiving): 6.11ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 122
GC 발생 API 요청 수: 1082
GC 미발생 API 요청 수: 60
전체 API 대비 GC 발생 API 비율: 94.75%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 3816.98ms
  - GC 미발생 API 평균 응답 시간: 781.80ms
  - 응답 시간 차이: 3035.18ms
  - GC 영향 비율: 388.23%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 8867.50ms
  - GC 미발생 API P95 응답 시간: 989.05ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 676.00ms
  - GC 미발생 API 최소 응답 시간: 645.00ms
  - GC 발생 API 최대 응답 시간: 10308.00ms
  - GC 미발생 API 최대 응답 시간: 999.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.106830
요청당 메모리 회수량: 56.55MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPSGC 발생 수: 15.57

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 63.51%

3회차

============================================

분석 시간: 2025-05-02 07:52:32
로그 파일: results\temp_original_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 122
GC 소요 시간: 842.69ms
평균 GC 시간: 6.91ms
최대 GC 일시 정지 시간: 25.13ms
총 회수 메모리량: 64629MB
평균 메모리 회수량: 529.75MB
테스트 기간: 140.07초당 GC 발생 수: 0.8710
분당 GC 발생 수: 52.26

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 122

## 2. API 통계 (GC 추출)

API 요청 수: 1139
API 실행 시간: 4402367.00ms
평균 API 응답 시간: 3865.12ms
최소 API 응답 시간: 625.00ms
최대 API 응답 시간: 10099.00ms
테스트 기간: 145.38TPS(초당 트랜잭션): 7.83
P90 응답 시간: 7555.20ms
P95 응답 시간: 8307.60ms
P99 응답 시간: 9100.10ms

API 상태 코드 분포: - 200: 1139

API 버전 분포: - original: 1139

## 3. K6 성능 지표

API 버전: original
총 요청 수: 1142
테스트 기간: 146.62TPS: 7.79
평균 응답 시간: 5744.32ms
최소 응답 시간: 76.40ms
중간값 응답 시간: 5900.83ms
최대 응답 시간: 14449.41ms
P90 응답 시간: 10055.98ms
P95 응답 시간: 10162.95ms
P99 응답 시간: 10331.48ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 5738.09ms - 연결 시간(connecting): 0.11ms - 송신 시간(sending): 0.01ms - 수신 시간(receiving): 6.22ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 122
GC 발생 API 요청 수: 1064
GC 미발생 API 요청 수: 75
전체 API 대비 GC 발생 API 비율: 93.42%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 4080.73ms - GC 미발생 API 평균 응답 시간: 806.20ms - 응답 시간 차이: 3274.53ms - GC 영향 비율: 406.17%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 8357.65ms - GC 미발생 API P95 응답 시간: 996.80ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 626.00ms - GC 미발생 API 최소 응답 시간: 625.00ms - GC 발생 API 최대 응답 시간: 10099.00ms - GC 미발생 API 최대 응답 시간: 1137.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.107112
요청당 메모리 회수량: 56.74MB
총 실행 시간 대비 GC 소요 시간 비율: 0.02%
TPSGC 발생 수: 15.57

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.74%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 67.29%

(2)Pure 버전

1회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 06:20:09
로그 파일: results\temp_pure_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 169
GC 소요 시간: 989.62ms
평균 GC 시간: 5.86ms
최대 GC 일시 정지 시간: 14.38ms
총 회수 메모리량: 89721MB
평균 메모리 회수량: 530.89MB
테스트 기간: 127.64초당 GC 발생 수: 1.3241
분당 GC 발생 수: 79.44

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 169

## 2. API 통계 (GC 추출)
API 요청 수: 6477
API 실행 시간: 588131.00ms
평균 API 응답 시간: 90.80ms
최소 API 응답 시간: 43.00ms
최대 API 응답 시간: 284.00ms
테스트 기간: 140.01TPS(초당 트랜잭션): 46.26
P90 응답 시간: 128.00ms
P95 응답 시간: 146.00ms
P99 응답 시간: 191.00ms

API 상태 코드 분포:
  - 200: 6477

API 버전 분포:
  - pure: 6477

## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6483
테스트 기간: 141.52TPS: 45.81
평균 응답 시간: 99.70ms
최소 응답 시간: 46.05ms
중간값 응답 시간: 95.10ms
최대 응답 시간: 335.41ms
P90 응답 시간: 149.16ms
P95 응답 시간: 171.62ms
P99 응답 시간: 225.98ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 94.00ms
  - 연결 시간(connecting): 0.02ms
  - 송신 시간(sending): 0.01ms
  - 수신 시간(receiving): 5.68ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 168
GC 발생 API 요청 수: 1252
GC 미발생 API 요청 수: 5225
전체 API 대비 GC 발생 API 비율: 19.33%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 110.54ms
  - GC 미발생 API 평균 응답 시간: 86.07ms
  - 응답 시간 차이: 24.46ms
  - GC 영향 비율: 28.42%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 175.00ms
  - GC 미발생 API P95 응답 시간: 136.00ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 48.00ms
  - GC 미발생 API 최소 응답 시간: 43.00ms
  - GC 발생 API 최대 응답 시간: 284.00ms
  - GC 미발생 API 최대 응답 시간: 261.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.026092
요청당 메모리 회수량: 13.85MB
총 실행 시간 대비 GC 소요 시간 비율: 0.17%
TPSGC 발생 수: 3.65

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 91.08%

2회차

============================================

분석 시간: 2025-05-02 06:31:40
로그 파일: results\temp_pure_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 166
GC 소요 시간: 989.00ms
평균 GC 시간: 5.96ms
최대 GC 일시 정지 시간: 17.05ms
총 회수 메모리량: 87979MB
평균 메모리 회수량: 529.99MB
테스트 기간: 174.80초당 GC 발생 수: 0.9497
분당 GC 발생 수: 56.98

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 165 - Young (Concurrent Start) (CodeCache GC Threshold): 1

## 2. API 통계 (GC 추출)

API 요청 수: 6304
API 실행 시간: 652899.00ms
평균 API 응답 시간: 103.57ms
최소 API 응답 시간: 42.00ms
최대 API 응답 시간: 668.00ms
테스트 기간: 139.83TPS(초당 트랜잭션): 45.08
P90 응답 시간: 160.00ms
P95 응답 시간: 209.00ms
P99 응답 시간: 365.97ms

API 상태 코드 분포: - 200: 6304

API 버전 분포: - pure: 6304

## 3. K6 성능 지표

API 버전: pure
총 요청 수: 6309
테스트 기간: 141.32TPS: 44.64
평균 응답 시간: 119.75ms
최소 응답 시간: 45.24ms
중간값 응답 시간: 96.26ms
최대 응답 시간: 809.52ms
P90 응답 시간: 199.37ms
P95 응답 시간: 278.66ms
P99 응답 시간: 514.42ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 110.80ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.15ms - 수신 시간(receiving): 8.79ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 164
GC 발생 API 요청 수: 1289
GC 미발생 API 요청 수: 5015
전체 API 대비 GC 발생 API 비율: 20.45%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 143.57ms - GC 미발생 API 평균 응답 시간: 93.29ms - 응답 시간 차이: 50.29ms - GC 영향 비율: 53.91%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 336.00ms - GC 미발생 API P95 응답 시간: 175.00ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 47.00ms - GC 미발생 API 최소 응답 시간: 42.00ms - GC 발생 API 최대 응답 시간: 668.00ms - GC 미발생 API 최대 응답 시간: 466.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.026332
요청당 메모리 회수량: 13.96MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPSGC 발생 수: 3.68

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.92%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 86.49%

3회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 07:02:39
로그 파일: results\temp_pure_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 166
GC 소요 시간: 931.81ms
평균 GC 시간: 5.61ms
최대 GC 일시 정지 시간: 22.77ms
총 회수 메모리량: 90165MB
평균 메모리 회수량: 543.16MB
테스트 기간: 131.13초당 GC 발생 수: 1.2659
분당 GC 발생 수: 75.95

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 166

## 2. API 통계 (GC 추출)
API 요청 수: 6482
API 실행 시간: 586297.00ms
평균 API 응답 시간: 90.45ms
최소 API 응답 시간: 43.00ms
최대 API 응답 시간: 351.00ms
테스트 기간: 140.04TPS(초당 트랜잭션): 46.29
P90 응답 시간: 127.00ms
P95 응답 시간: 148.00ms
P99 응답 시간: 206.00ms

API 상태 코드 분포:
  - 200: 6482

API 버전 분포:
  - pure: 6482

## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6490
테스트 기간: 141.30TPS: 45.93
평균 응답 시간: 99.79ms
최소 응답 시간: 44.93ms
중간값 응답 시간: 93.46ms
최대 응답 시간: 394.94ms
P90 응답 시간: 150.61ms
P95 응답 시간: 174.61ms
P99 응답 시간: 257.01ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 94.14ms
  - 연결 시간(connecting): 0.02ms
  - 송신 시간(sending): 0.02ms
  - 수신 시간(receiving): 5.64ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 165
GC 발생 API 요청 수: 1188
GC 미발생 API 요청 수: 5294
전체 API 대비 GC 발생 API 비율: 18.33%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 110.75ms
  - GC 미발생 API 평균 응답 시간: 85.89ms
  - 응답 시간 차이: 24.86ms
  - GC 영향 비율: 28.94%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 183.00ms
  - GC 미발생 API P95 응답 시간: 137.00ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 48.00ms
  - GC 미발생 API 최소 응답 시간: 43.00ms
  - GC 발생 API 최대 응답 시간: 351.00ms
  - GC 미발생 API 최대 응답 시간: 274.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.025609
요청당 메모리 회수량: 13.91MB
총 실행 시간 대비 GC 소요 시간 비율: 0.16%
TPSGC 발생 수: 3.59

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.88%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 90.64%

(3)

Optimized 버전

1회차

============================================

분석 시간: 2025-05-02 02:55:37
로그 파일: results\temp_optimized_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 196
GC 소요 시간: 1225.43ms
평균 GC 시간: 6.25ms
최대 GC 일시 정지 시간: 16.13ms
총 회수 메모리량: 93560MB
평균 메모리 회수량: 477.35MB
테스트 기간: 130.17초당 GC 발생 수: 1.5057
분당 GC 발생 수: 90.34

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 195 - Young (Normal) (GCLocker Initiated GC): 1

## 2. API 통계 (GC 추출)

API 요청 수: 5688
API 실행 시간: 1001805.00ms
평균 API 응답 시간: 176.13ms
최소 API 응답 시간: 56.00ms
최대 API 응답 시간: 703.00ms
테스트 기간: 140.07TPS(초당 트랜잭션): 40.61
P90 응답 시간: 318.00ms
P95 응답 시간: 370.00ms
P99 응답 시간: 468.26ms

API 상태 코드 분포: - 200: 5688

API 버전 분포: - optimized: 5688

## 3. K6 성능 지표

API 버전: optimized
총 요청 수: 5691
테스트 기간: 141.31TPS: 40.27
평균 응답 시간: 229.71ms
최소 응답 시간: 60.37ms
중간값 응답 시간: 175.50ms
최대 응답 시간: 1203.92ms
P90 응답 시간: 434.94ms
P95 응답 시간: 507.30ms
P99 응답 시간: 685.99ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 215.23ms - 연결 시간(connecting): 0.04ms - 송신 시간(sending): 0.46ms - 수신 시간(receiving): 14.02ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 195
GC 발생 API 요청 수: 2030
GC 미발생 API 요청 수: 3658
전체 API 대비 GC 발생 API 비율: 35.69%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 238.55ms - GC 미발생 API 평균 응답 시간: 141.49ms - 응답 시간 차이: 97.06ms - GC 영향 비율: 68.60%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 433.00ms - GC 미발생 API P95 응답 시간: 299.00ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 61.00ms - GC 미발생 API 최소 응답 시간: 56.00ms - GC 발생 API 최대 응답 시간: 703.00ms - GC 미발생 API 최대 응답 시간: 479.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.034459
요청당 메모리 회수량: 16.45MB
총 실행 시간 대비 GC 소요 시간 비율: 0.12%
TPSGC 발생 수: 4.83

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.95%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 76.67%

2회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 03:08:09
로그 파일: results\temp_optimized_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 177
GC 소요 시간: 1121.53ms
평균 GC 시간: 6.34ms
최대 GC 일시 정지 시간: 13.98ms
총 회수 메모리량: 92707MB
평균 메모리 회수량: 523.77MB
테스트 기간: 130.60초당 GC 발생 수: 1.3553
분당 GC 발생 수: 81.32

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 177

## 2. API 통계 (GC 추출)
API 요청 수: 5629
API 실행 시간: 981882.00ms
평균 API 응답 시간: 174.43ms
최소 API 응답 시간: 56.00ms
최대 API 응답 시간: 804.00ms
테스트 기간: 139.87TPS(초당 트랜잭션): 40.24
P90 응답 시간: 313.20ms
P95 응답 시간: 365.00ms
P99 응답 시간: 485.72ms

API 상태 코드 분포:
  - 200: 5629

API 버전 분포:
  - optimized: 5629

## 3. K6 성능 지표
API 버전: optimized
총 요청 수: 5634
테스트 기간: 141.17TPS: 39.91
평균 응답 시간: 227.89ms
최소 응답 시간: 59.17ms
중간값 응답 시간: 172.29ms
최대 응답 시간: 1164.50ms
P90 응답 시간: 444.12ms
P95 응답 시간: 525.17ms
P99 응답 시간: 699.31ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 210.92ms
  - 연결 시간(connecting): 0.05ms
  - 송신 시간(sending): 0.79ms
  - 수신 시간(receiving): 16.18ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 177
GC 발생 API 요청 수: 1921
GC 미발생 API 요청 수: 3708
전체 API 대비 GC 발생 API 비율: 34.13%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 237.50ms
  - GC 미발생 API 평균 응답 시간: 141.76ms
  - 응답 시간 차이: 95.75ms
  - GC 영향 비율: 67.54%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 451.00ms
  - GC 미발생 API P95 응답 시간: 303.00ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 61.00ms
  - GC 미발생 API 최소 응답 시간: 56.00ms
  - GC 발생 API 최대 응답 시간: 804.00ms
  - GC 미발생 API 최대 응답 시간: 507.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.031444
요청당 메모리 회수량: 16.47MB
총 실행 시간 대비 GC 소요 시간 비율: 0.11%
TPSGC 발생 수: 4.40

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.91%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 76.54%

3회차

============================================

분석 시간: 2025-05-02 04:42:20
로그 파일: results\temp_optimized_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 191
GC 소요 시간: 1080.08ms
평균 GC 시간: 5.65ms
최대 GC 일시 정지 시간: 8.04ms
총 회수 메모리량: 100062MB
평균 메모리 회수량: 523.88MB
테스트 기간: 142.19초당 GC 발생 수: 1.3433
분당 GC 발생 수: 80.60

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 191

## 2. API 통계 (GC 추출)

API 요청 수: 6063
API 실행 시간: 901617.00ms
평균 API 응답 시간: 148.71ms
최소 API 응답 시간: 57.00ms
최대 API 응답 시간: 483.00ms
테스트 기간: 139.72TPS(초당 트랜잭션): 43.39
P90 응답 시간: 247.80ms
P95 응답 시간: 275.00ms
P99 응답 시간: 342.00ms

API 상태 코드 분포: - 200: 6063

API 버전 분포: - optimized: 6063

## 3. K6 성능 지표

API 버전: optimized
총 요청 수: 6069
테스트 기간: 141.08TPS: 43.02
평균 응답 시간: 178.47ms
최소 응답 시간: 59.77ms
중간값 응답 시간: 152.66ms
최대 응답 시간: 600.04ms
P90 응답 시간: 315.46ms
P95 응답 시간: 352.31ms
P99 응답 시간: 435.71ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 172.72ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.02ms - 수신 시간(receiving): 5.73ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 189
GC 발생 API 요청 수: 1964
GC 미발생 API 요청 수: 4099
전체 API 대비 GC 발생 API 비율: 32.39%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 189.76ms - GC 미발생 API 평균 응답 시간: 129.04ms - 응답 시간 차이: 60.72ms - GC 영향 비율: 47.06%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 305.00ms - GC 미발생 API P95 응답 시간: 249.00ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 64.00ms - GC 미발생 API 최소 응답 시간: 57.00ms - GC 발생 API 최대 응답 시간: 483.00ms - GC 미발생 API 최대 응답 시간: 427.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.031503
요청당 메모리 회수량: 16.50MB
총 실행 시간 대비 GC 소요 시간 비율: 0.12%
TPSGC 발생 수: 4.40

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.90%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 83.33%

(4)Graph 버전

1회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 04:56:53
로그 파일: results\temp_graph_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 196
GC 소요 시간: 1180.59ms
평균 GC 시간: 6.02ms
최대 GC 일시 정지 시간: 15.93ms
총 회수 메모리량: 102484MB
평균 메모리 회수량: 522.88MB
테스트 기간: 132.86초당 GC 발생 수: 1.4752
분당 GC 발생 수: 88.51

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 195
  - Young (Normal) (GCLocker Initiated GC): 1

## 2. API 통계 (GC 추출)
API 요청 수: 6220
API 실행 시간: 783143.00ms
평균 API 응답 시간: 125.91ms
최소 API 응답 시간: 48.00ms
최대 API 응답 시간: 415.00ms
테스트 기간: 139.96TPS(초당 트랜잭션): 44.44
P90 응답 시간: 203.00ms
P95 응답 시간: 229.05ms
P99 응답 시간: 288.00ms

API 상태 코드 분포:
  - 200: 6220

API 버전 분포:
  - graph: 6220

## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6225
테스트 기간: 141.46TPS: 44.00
평균 응답 시간: 147.04ms
최소 응답 시간: 51.67ms
중간값 응답 시간: 125.89ms
최대 응답 시간: 653.14ms
P90 응답 시간: 251.26ms
P95 응답 시간: 282.69ms
P99 응답 시간: 362.91ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 140.84ms
  - 연결 시간(connecting): 0.02ms
  - 송신 시간(sending): 0.03ms
  - 수신 시간(receiving): 6.17ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 195
GC 발생 API 요청 수: 1802
GC 미발생 API 요청 수: 4418
전체 API 대비 GC 발생 API 비율: 28.97%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 159.63ms
  - GC 미발생 API 평균 응답 시간: 112.15ms
  - 응답 시간 차이: 47.48ms
  - GC 영향 비율: 42.34%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 262.95ms
  - GC 미발생 API P95 응답 시간: 208.00ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 55.00ms
  - GC 미발생 API 최소 응답 시간: 48.00ms
  - GC 발생 API 최대 응답 시간: 415.00ms
  - GC 미발생 API 최대 응답 시간: 362.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.031511
요청당 메모리 회수량: 16.48MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPSGC 발생 수: 4.41

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.92%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 85.63%

2회차

============================================

분석 시간: 2025-05-02 05:52:37
로그 파일: results\temp_graph_case3_log.txt

## 1. GC 통계

GC 발생 횟수: 197
GC 소요 시간: 1180.12ms
평균 GC 시간: 5.99ms
최대 GC 일시 정지 시간: 9.86ms
총 회수 메모리량: 102913MB
평균 메모리 회수량: 522.40MB
테스트 기간: 131.34초당 GC 발생 수: 1.4999
분당 GC 발생 수: 90.00

GC 유형별 발생 횟수: - Young (Normal) (G1 Evacuation Pause): 197

## 2. API 통계 (GC 추출)

API 요청 수: 6233
API 실행 시간: 800638.00ms
평균 API 응답 시간: 128.45ms
최소 API 응답 시간: 49.00ms
최대 API 응답 시간: 579.00ms
테스트 기간: 139.94TPS(초당 트랜잭션): 44.54
P90 응답 시간: 209.00ms
P95 응답 시간: 243.00ms
P99 응답 시간: 321.68ms

API 상태 코드 분포: - 200: 6233

API 버전 분포: - graph: 6233

## 3. K6 성능 지표

API 버전: graph
총 요청 수: 6235
테스트 기간: 141.48TPS: 44.07
평균 응답 시간: 150.38ms
최소 응답 시간: 51.73ms
중간값 응답 시간: 129.90ms
최대 응답 시간: 668.83ms
P90 응답 시간: 257.11ms
P95 응답 시간: 304.19ms
P99 응답 시간: 413.78ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간: - 대기 시간(waiting): 144.01ms - 연결 시간(connecting): 0.02ms - 송신 시간(sending): 0.06ms - 수신 시간(receiving): 6.32ms

## 4. GC-API 상관관계 분석

API 호출 중 발생한 GC: 197
GC 발생 API 요청 수: 1926
GC 미발생 API 요청 수: 4307
전체 API 대비 GC 발생 API 비율: 30.90%

응답 시간 비교: - GC 발생 API 평균 응답 시간: 166.30ms - GC 미발생 API 평균 응답 시간: 111.53ms - 응답 시간 차이: 54.77ms - GC 영향 비율: 49.11%

백분위 응답 시간 비교: - GC 발생 API P95 응답 시간: 282.00ms - GC 미발생 API P95 응답 시간: 207.00ms

최소/최대 응답 시간 비교: - GC 발생 API 최소 응답 시간: 55.00ms - GC 미발생 API 최소 응답 시간: 49.00ms - GC 발생 API 최대 응답 시간: 579.00ms - GC 미발생 API 최대 응답 시간: 404.00ms

## 5. 효율성 지표

요청당 GC 발생 비율: 0.031606
요청당 메모리 회수량: 16.51MB
총 실행 시간 대비 GC 소요 시간 비율: 0.15%
TPSGC 발생 수: 4.42

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.97%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 85.42%

3회차

============================================
        GC-API 상관관계 분석 보고서
============================================

분석 시간: 2025-05-02 06:12:00
로그 파일: results\temp_graph_case3_log.txt

## 1. GC 통계
GC 발생 횟수: 196
GC 소요 시간: 1194.09ms
평균 GC 시간: 6.09ms
최대 GC 일시 정지 시간: 15.06ms
총 회수 메모리량: 102531MB
평균 메모리 회수량: 523.12MB
테스트 기간: 128.70초당 GC 발생 수: 1.5230
분당 GC 발생 수: 91.38

GC 유형별 발생 횟수:
  - Young (Normal) (G1 Evacuation Pause): 195
  - Young (Normal) (GCLocker Initiated GC): 1

## 2. API 통계 (GC 추출)
API 요청 수: 6222
API 실행 시간: 769689.00ms
평균 API 응답 시간: 123.70ms
최소 API 응답 시간: 48.00ms
최대 API 응답 시간: 408.00ms
테스트 기간: 139.99TPS(초당 트랜잭션): 44.45
P90 응답 시간: 207.00ms
P95 응답 시간: 234.00ms
P99 응답 시간: 297.79ms

API 상태 코드 분포:
  - 200: 6222

API 버전 분포:
  - graph: 6222

## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6229
테스트 기간: 141.40TPS: 44.05
평균 응답 시간: 143.59ms
최소 응답 시간: 51.57ms
중간값 응답 시간: 119.99ms
최대 응답 시간: 498.85ms
P90 응답 시간: 254.17ms
P95 응답 시간: 288.40ms
P99 응답 시간: 368.25ms
실패율: 0.00%
최대 가상 사용자 수: 100

HTTP 요청 상세 시간:
  - 대기 시간(waiting): 137.34ms
  - 연결 시간(connecting): 0.02ms
  - 송신 시간(sending): 0.03ms
  - 수신 시간(receiving): 6.22ms

## 4. GC-API 상관관계 분석
API 호출 중 발생한 GC: 196
GC 발생 API 요청 수: 1815
GC 미발생 API 요청 수: 4407
전체 API 대비 GC 발생 API 비율: 29.17%

응답 시간 비교:
  - GC 발생 API 평균 응답 시간: 158.58ms
  - GC 미발생 API 평균 응답 시간: 109.34ms
  - 응답 시간 차이: 49.23ms
  - GC 영향 비율: 45.03%

백분위 응답 시간 비교:
  - GC 발생 API P95 응답 시간: 269.00ms
  - GC 미발생 API P95 응답 시간: 210.00ms

최소/최대 응답 시간 비교:
  - GC 발생 API 최소 응답 시간: 54.00ms
  - GC 미발생 API 최소 응답 시간: 48.00ms
  - GC 발생 API 최대 응답 시간: 408.00ms
  - GC 미발생 API 최대 응답 시간: 355.00ms

## 5. 효율성 지표
요청당 GC 발생 비율: 0.031501
요청당 메모리 회수량: 16.48MB
총 실행 시간 대비 GC 소요 시간 비율: 0.16%
TPSGC 발생 수: 4.41

K6 결과 비교:
로그 파싱 API 요청 / K6 총 요청 비율: 99.89%
로그 파싱 평균 응답 시간 / K6 평균 응답 시간 비율: 86.15%

5. 결과 종합

(1)Grafana 결과

전체 버전

Case 3 전체 API (평균, P95, P99)
그림 4-9: Case 3 전체 API (평균, P95, P99)
  • 좌측부터 optimized, graph, pure, original 버전

    1000ms 확대 사진

    Case 3 일부 API (평균, P95, P99)
    그림 4-10: Case 3 일부 API (평균, P95, P99)
    • 좌측부터 optimized, graph, pure
    • K6 thresholds 설정 : p(95)<600, p(99)<800

    P95 응답 속도

    Case 3 일부 API (P95)
    그림 4-11: Case 3 일부 API (P95)
    • 좌측부터 optimized, graph, pure
    • K6 thresholds 설정 : p(95)<600

    P99 응답 속도

    Case 3 일부 API (P99)
    그림 4-12: Case 3 일부 API (P99)
    • 좌측부터 optimized, graph, pure
    • K6 thresholds 설정 : p(99)<800

(2)

케이스 평균 데이터

GC 성능 지표

항목

original

pure

optimized

graph

GC 발생 횟수122.33167.00188.00196.33
평균 GC 시간(ms)6.755.816.086.03
최대 GC 시간(ms)18.4918.0712.7213.62
총 회수 메모리량(MB)64762.6789288.3395443.00102642.67
평균 메모리 회수량(MB)529.40534.68508.33522.80

API 성능 지표

항목

original

pure

optimized

graph

API 요청 수1145.336421.005793.336225.00
평균 API 응답 시간(ms)3724.5694.94166.42126.02
최소 API 응답 시간(ms)632.0042.6756.3348.33
최대 API 응답 시간(ms)10065.33434.33663.33467.33
API TPS7.8845.8841.4144.48
API P90 응답 시간(ms)7542.77138.33293.00206.33
API P95 응답 시간(ms)8516.22167.67336.67235.35
API P99 응답 시간(ms)9373.94254.32431.99302.49

GC-API 상관관계 지표

항목

original

pure

optimized

graph

API 호출 중 발생한 GC 수122.33165.67187.00196.00
GC 발생 API 요청 수1077.671243.001971.671847.67
GC 미발생 API 요청 수67.675178.003821.674377.33
GC 발생 API 평균 응답 시간(ms)3909.49121.62221.94161.50
GC 미발생 API 평균 응답 시간(ms)788.8688.42137.43111.01
GC 발생 API 비율(%)94.0919.3734.0729.68
GC 영향 비율(%)395.4737.0961.0745.49

K6 성능 지표

항목

original

pure

optimized

graph

K6 TPS7.8245.4641.0744.04
가상 사용자 최대100.00100.00100.00100.00
K6 평균 응답 시간(ms)5709.16106.41212.02147.00
K6 최소 응답 시간(ms)74.4645.4159.7751.66
K6 중간값 응답 시간(ms)5802.0494.94166.82125.26
K6 최대 응답 시간(ms)16107.93513.29989.49606.94
K6 P90 응답 시간(ms)10087.13166.38398.17254.18
K6 P95 응답 시간(ms)10202.74208.30461.59291.76
K6 P99 응답 시간(ms)10397.46332.47607.00381.65
실패율(%)0.000.000.000.00

효율성 지표

항목

original

pure

optimized

graph

요청당 GC 발생 비율0.110.030.030.03
요청당 메모리 회수량(MB)56.5413.9116.4716.49
총 실행 시간 대비 GC 소요 시간 비율(%)0.020.160.120.15

다음 페이지로 이동 (5. 테스트 결과 비교)