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, 13 외 989개...

#### 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, 13 외 989개...

#### 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.3939811초 TPS (초당 트랜잭션): 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.1542738초
TPS (초당 트랜잭션): 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.6239706초 TPS (초당 트랜잭션): 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.5217709초
TPS (초당 트랜잭션): 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.31593909999998초 TPS (초당 트랜잭션): 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.2998101초
TPS (초당 트랜잭션): 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.30876120000002초 TPS (초당 트랜잭션): 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.1725684초
TPS (초당 트랜잭션): 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.0763875초 TPS (초당 트랜잭션): 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.46490400000002초
TPS (초당 트랜잭션): 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.4793021초
TPS (초당 트랜잭션): 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.39998459999998초
TPS (초당 트랜잭션): 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.01초
TPS(초당 트랜잭션): 7.96
P90 응답 시간: 7428.40ms
P95 응답 시간: 8409.20ms
P99 응답 시간: 9339.50ms

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

API 버전 분포: - original: 1155

## 3. K6 성능 지표

API 버전: original
총 요청 수: 1156
테스트 기간: 146.39초
TPS: 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%
TPS당 GC 발생 수: 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.72초
TPS(초당 트랜잭션): 7.84
P90 응답 시간: 7644.70ms
P95 응답 시간: 8831.85ms
P99 응답 시간: 9682.22ms

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

API 버전 분포:
  - original: 1142

## 3. K6 성능 지표
API 버전: original
총 요청 수: 1143
테스트 기간: 147.15초
TPS: 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%
TPS당 GC 발생 수: 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.38초
TPS(초당 트랜잭션): 7.83
P90 응답 시간: 7555.20ms
P95 응답 시간: 8307.60ms
P99 응답 시간: 9100.10ms

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

API 버전 분포: - original: 1139

## 3. K6 성능 지표

API 버전: original
총 요청 수: 1142
테스트 기간: 146.62초
TPS: 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%
TPS당 GC 발생 수: 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.01초
TPS(초당 트랜잭션): 46.26
P90 응답 시간: 128.00ms
P95 응답 시간: 146.00ms
P99 응답 시간: 191.00ms

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

API 버전 분포:
  - pure: 6477

## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6483
테스트 기간: 141.52초
TPS: 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%
TPS당 GC 발생 수: 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.83초
TPS(초당 트랜잭션): 45.08
P90 응답 시간: 160.00ms
P95 응답 시간: 209.00ms
P99 응답 시간: 365.97ms

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

API 버전 분포: - pure: 6304

## 3. K6 성능 지표

API 버전: pure
총 요청 수: 6309
테스트 기간: 141.32초
TPS: 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%
TPS당 GC 발생 수: 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.04초
TPS(초당 트랜잭션): 46.29
P90 응답 시간: 127.00ms
P95 응답 시간: 148.00ms
P99 응답 시간: 206.00ms

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

API 버전 분포:
  - pure: 6482

## 3. K6 성능 지표
API 버전: pure
총 요청 수: 6490
테스트 기간: 141.30초
TPS: 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%
TPS당 GC 발생 수: 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.07초
TPS(초당 트랜잭션): 40.61
P90 응답 시간: 318.00ms
P95 응답 시간: 370.00ms
P99 응답 시간: 468.26ms

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

API 버전 분포: - optimized: 5688

## 3. K6 성능 지표

API 버전: optimized
총 요청 수: 5691
테스트 기간: 141.31초
TPS: 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%
TPS당 GC 발생 수: 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.87초
TPS(초당 트랜잭션): 40.24
P90 응답 시간: 313.20ms
P95 응답 시간: 365.00ms
P99 응답 시간: 485.72ms

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

API 버전 분포:
  - optimized: 5629

## 3. K6 성능 지표
API 버전: optimized
총 요청 수: 5634
테스트 기간: 141.17초
TPS: 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%
TPS당 GC 발생 수: 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.72초
TPS(초당 트랜잭션): 43.39
P90 응답 시간: 247.80ms
P95 응답 시간: 275.00ms
P99 응답 시간: 342.00ms

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

API 버전 분포: - optimized: 6063

## 3. K6 성능 지표

API 버전: optimized
총 요청 수: 6069
테스트 기간: 141.08초
TPS: 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%
TPS당 GC 발생 수: 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.96초
TPS(초당 트랜잭션): 44.44
P90 응답 시간: 203.00ms
P95 응답 시간: 229.05ms
P99 응답 시간: 288.00ms

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

API 버전 분포:
  - graph: 6220

## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6225
테스트 기간: 141.46초
TPS: 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%
TPS당 GC 발생 수: 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.94초
TPS(초당 트랜잭션): 44.54
P90 응답 시간: 209.00ms
P95 응답 시간: 243.00ms
P99 응답 시간: 321.68ms

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

API 버전 분포: - graph: 6233

## 3. K6 성능 지표

API 버전: graph
총 요청 수: 6235
테스트 기간: 141.48초
TPS: 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%
TPS당 GC 발생 수: 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.99초
TPS(초당 트랜잭션): 44.45
P90 응답 시간: 207.00ms
P95 응답 시간: 234.00ms
P99 응답 시간: 297.79ms

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

API 버전 분포:
  - graph: 6222

## 3. K6 성능 지표
API 버전: graph
총 요청 수: 6229
테스트 기간: 141.40초
TPS: 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%
TPS당 GC 발생 수: 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. 테스트 결과 비교)