Skip to content

๐Ÿ”€ :: (#148) - perf CI ํŒ์ • ๊ธฐ์ค€์„ ์‹คํ–‰ ๊ฐ„ ํŽธ์ฐจ์— ๋งž๊ฒŒ ์กฐ์ • - #149

Open
aiden30015 wants to merge 1 commit into
developfrom
fix/#148-perf-ci-noise
Open

aiden30015 wants to merge 1 commit into
developfrom
fix/#148-perf-ci-noise

Conversation

@aiden30015

Copy link
Copy Markdown
Contributor

๐Ÿ’ก ๊ฐœ์š”

perf CI๊ฐ€ ์ฝ”๋“œ ๋ณ€๊ฒฝ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‹คํŒจํ•˜๋˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. CI ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์‹คํ–‰ ๊ฐ„ ํŽธ์ฐจ๋ฅผ ์‹ค์ธกํ•ด์„œ baseline๊ณผ ํŒ์ • ๊ธฐ์ค€์„ ๋‹ค์‹œ ์žก์•˜์Šต๋‹ˆ๋‹ค.

๐Ÿ”— ๊ด€๋ จ ์ด์Šˆ

Closes #148

๐Ÿ“ƒ ์ž‘์—…๋‚ด์šฉ

  • ์›์ธ
    • perfkit์€ ํ•œ ์‹คํ–‰ ์•ˆ์˜ ๋ฐ˜๋ณต 3ํšŒ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํŽธ์ฐจ๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋ถ€ํŒ…(์‹คํ–‰) ๋‹จ์œ„๋กœ ์ƒ๊ฒจ์„œ ฯƒ ๊ฒŒ์ดํŠธ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
      • ์˜ˆ: outing_state_scroll p95์˜ baseline ๋…ธ์ด์ฆˆ๋Š” 0.2ms์ธ๋ฐ, ์‹ค์ œ ์‹คํ–‰ ๊ฐ„ ํŽธ์ฐจ๋Š” ์ตœ๋Œ€ 7.5ms์ž…๋‹ˆ๋‹ค.
    • ๊ธฐ์กด baseline(8a7af33)์€ ๋А๋ ค์ง„ ์‹คํ–‰ 1ํšŒ์˜ ๊ฐ’์ด์—ˆ์Šต๋‹ˆ๋‹ค(home_scroll jank 17.1%).
    • ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๋ˆ CI 8ํšŒ์— ๊ธฐ์กด ์„ค์ •์„ ์ ์šฉํ•˜๋ฉด 6ํšŒ๊ฐ€ ํšŒ๊ท€๋กœ ํŒ์ •๋ฉ๋‹ˆ๋‹ค.
  • baseline ์žฌ์ƒ์„ฑ (baseline/performance_baseline.json)
    • ์•ฑ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ CI 6ํšŒ(368e8df, 4ce57ea, 8a7af33, 7c04b5f, dca5caf)์˜ ์ค‘์•™๊ฐ’์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋…ธ์ด์ฆˆ๋Š” ์‹คํ–‰ ๊ฐ„ MAD(ร—1.4826)๋กœ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.
    • #147์˜ ์‹คํ–‰ 2ํšŒ๋Š” ๊ฒ€์ฆ์šฉ์œผ๋กœ๋งŒ ์“ฐ๊ณ  baseline์—์„œ๋Š” ๋บ์Šต๋‹ˆ๋‹ค.
  • ํŒ์ • ๊ธฐ์ค€ ์กฐ์ • (perf.yaml)
    • min_abs_delta๋ฅผ CI 8ํšŒ์—์„œ ๊ด€์ธก๋œ ์‹คํ–‰ ๊ฐ„ ์ตœ๋Œ€ ํŽธ์ฐจ ์ด์ƒ์œผ๋กœ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.
์ง€ํ‘œ ๊ธฐ์กด ๋ณ€๊ฒฝ ๊ด€์ธก ์ตœ๋Œ€ ํŽธ์ฐจ
p90_frame_time_ms 1.0 7.5 +6.9 (outing_state_scroll)
p95_frame_time_ms 1.0 8.5 +7.8 (login)
p99_frame_time_ms 2.0 9.5 +9.3 (outing_state_scroll)
p50_frame_time_ms 1.0 1.5 +1.3 (home_scroll)
jank_rate 1.0 15.0 +14.9%p (outing_state_scroll)
dropped_frames 2 17 +16 (home_scroll)
memory_mb 5.0 12.0 +11 (login, outing_state_scroll)
startup_ms, startup_rasterized_ms 50 150 +84 (์ตœ์ดˆ dry-run 1ํšŒ ์ œ์™ธ)
duration_ms 200 700 +640 (login, ์‹ค์ œ ๋ฐฑ์—”๋“œ ์‘๋‹ต ํฌํ•จ)

๐Ÿ” ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•

  • perfkit ํŒ์ • ๋กœ์ง(detect.judge)์— ์ƒˆ baseline๊ณผ ์„ค์ •์„ ๋„ฃ๊ณ  ๊ณผ๊ฑฐ CI 8ํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ํŒ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ธฐ์กด: 8ํšŒ ์ค‘ 6ํšŒ ์‹คํŒจ
    • ๋ณ€๊ฒฝ ํ›„: 7ํšŒ ํ†ต๊ณผ, 1ํšŒ ์‹คํŒจ
    • ์‹คํŒจํ•œ 1ํšŒ๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ดˆ dry-run(368e8df)์˜ startup 1360ms์ž…๋‹ˆ๋‹ค. ์ดํ›„ 7ํšŒ๋Š” 826~935ms๋ผ์„œ ์ผํšŒ์„ฑ์œผ๋กœ ๋ณด๊ณ  ๊ธฐ์ค€์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ์ด PR์€ perf.yaml์„ ๋ฐ”๊พธ๋ฏ€๋กœ perf CI๊ฐ€ ์ „์ฒด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋กœ ์‹ค์ œ ๋™์ž‘์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ™‹โ€โ™‚๏ธ ์งˆ๋ฌธ์‚ฌํ•ญ

  • ์˜คํƒ์„ ์ค„์ธ ๋Œ€์‹  ๊ฐ๋„๊ฐ€ ๋‚ฎ์•„์กŒ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํฌ๋กค p95๋Š” ์•ฝ 8.5ms ์ด์ƒ ๋Š˜์–ด์•ผ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค(12ms โ†’ 24ms์ฒ˜๋Ÿผ ๋‘ ๋ฐฐ๊ฐ€ ๋˜๋Š” ํšŒ๊ท€๋Š” ์žกํž˜). ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์ด๋ณด๋‹ค ์ž‘์€ ๋ณ€ํ™”๋ฅผ ์ฝ”๋“œ ํƒ“์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ๋„๋ฅผ ๋˜์ฐพ์œผ๋ ค๋ฉด perfkit ์ชฝ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ๊ท€๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๋„์›Œ ์žฌ์ธก์ •ํ•˜๊ณ , ์žฌํ˜„๋  ๋•Œ๋งŒ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•˜๋ฉด ๋ณ„๋„ ์ด์Šˆ๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ์„ ํ•  ์ , ์˜คํƒ€, ์ฝ”๋“œ์— ์ด์ƒํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด Comment ๋‹ฌ์•„์ฃผ์„ธ์š”.

โœ… ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ์ค€์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. (์ด PR์˜ perf CI ๊ฒฐ๊ณผ๋กœ ํ™•์ธ ์˜ˆ์ •)

- baseline์„ CI 6ํšŒ ์‹ค์ธก์˜ ์ค‘์•™๊ฐ’์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ๋…ธ์ด์ฆˆ๋ฅผ ์‹คํ–‰ ๊ฐ„ MAD๋กœ ๋ฐ˜์˜
- ํ”„๋ ˆ์ž„ยทjankยทdropped_frames ๋“ฑ์˜ min_abs_delta๋ฅผ CI 8ํšŒ์—์„œ ๊ด€์ธก๋œ ์‹คํ–‰ ๊ฐ„ ์ตœ๋Œ€ ํŽธ์ฐจ ์ด์ƒ์œผ๋กœ ์ƒํ–ฅ

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aiden30015 aiden30015 self-assigned this Sep 23, 2026
@github-actions

Copy link
Copy Markdown

๐Ÿ“Š Flutter Performance Report

โ„น๏ธ baseline/performance_baseline.json ๋Š” ํŠน์ • ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งคํ•‘๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์ด๋ผ ์ „์ฒด๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

โŒ Performance Regression โ€” 2๊ฑด

  • home_scroll / dropped_frames: 6.0 โ†’ 24.0 (+300.0%, ์ž„๊ณ„ 25%)
  • home_scroll / p50_frame_time_ms: 10.6ms โ†’ 13.0ms (+23.1%, ์ž„๊ณ„ 20%)

โŒ home_scroll

Metric Baseline Current Change Threshold
โœ… fps 60.0 60.0 +0.0% 10%
๐ŸŸก jank_rate 4.7% 18.6% +295.8% 20%
๐ŸŸก p95_frame_time_ms 16.1ms 19.9ms +24.1% 15%
โœ… memory_mb 330MB 328MB -0.4% 20%
๊ธฐํƒ€ ์ง€ํ‘œ
Metric Baseline Current Change Threshold
โŒ dropped_frames 6.0 24.0 +300.0% 25%
โŒ p50_frame_time_ms 10.6ms 13.0ms +23.1% 20%
๐ŸŸก p90_frame_time_ms 14.7ms 17.9ms +21.8% 15%
โœ… p99_frame_time_ms 20.1ms 21.7ms +8.4% 20%
โœ… duration_ms 16058ms 16078ms +0.1% 25%

โœ… app_startup

Metric Baseline Current Change Threshold
๐ŸŸก startup_ms 861ms 1719ms +99.6% 20%
๊ธฐํƒ€ ์ง€ํ‘œ
Metric Baseline Current Change Threshold
๐ŸŸก startup_rasterized_ms 984ms 1973ms +100.6% 20%

โœ… login

Metric Baseline Current Change Threshold
โœ… fps 60.0 60.0 +0.0% 10%
โœ… jank_rate 2.2% 2.4% +8.2% 20%
โœ… p95_frame_time_ms 8.4ms 8.0ms -4.2% 15%
โœ… memory_mb 300MB 298MB -0.6% 20%
๊ธฐํƒ€ ์ง€ํ‘œ
Metric Baseline Current Change Threshold
โœ… dropped_frames 1.0 1.0 +0.0% 25%
๐ŸŸก p50_frame_time_ms 2.3ms 3.1ms +33.8% 20%
๐ŸŸก p90_frame_time_ms 5.2ms 6.5ms +24.9% 15%
๐ŸŸก p99_frame_time_ms 28.4ms 34.7ms +21.8% 20%
โœ… duration_ms 1628ms 1541ms -5.4% 25%

โœ… member_list_scroll

Metric Baseline Current Change Threshold
โœ… fps 60.0 60.0 +0.0% 10%
๐ŸŸก jank_rate 0.0% 1.5% +1.5 (baseline 0) 20%
๐ŸŸก p95_frame_time_ms 11.8ms 14.0ms +18.2% 15%
โœ… memory_mb 388MB 387MB -0.3% 20%
๊ธฐํƒ€ ์ง€ํ‘œ
Metric Baseline Current Change Threshold
๐ŸŸก dropped_frames 0.0 1.0 +1.0 (baseline 0) 25%
โœ… p50_frame_time_ms 8.8ms 10.3ms +18.2% 20%
๐ŸŸก p90_frame_time_ms 11.3ms 13.6ms +19.6% 15%
๐ŸŸก p99_frame_time_ms 13.2ms 16.1ms +22.3% 20%
โœ… duration_ms 31235ms 31321ms +0.3% 25%

โœ… outing_state_scroll

Metric Baseline Current Change Threshold
โœ… fps 60.0 60.0 +0.0% 10%
๐ŸŸก jank_rate 0.0% 1.1% +1.1 (baseline 0) 20%
๐ŸŸก p95_frame_time_ms 11.6ms 14.3ms +23.5% 15%
โœ… memory_mb 365MB 364MB -0.2% 20%
๊ธฐํƒ€ ์ง€ํ‘œ
Metric Baseline Current Change Threshold
๐ŸŸก dropped_frames 0.0 1.0 +1.0 (baseline 0) 25%
โœ… p50_frame_time_ms 8.7ms 9.8ms +13.4% 20%
๐ŸŸก p90_frame_time_ms 11.0ms 13.4ms +21.4% 15%
โœ… p99_frame_time_ms 13.3ms 15.3ms +14.7% 20%
โœ… duration_ms 28902ms 28937ms +0.1% 25%

commit 46a6cb3 ยท baseline dca5caf (2026-09-23T06:47:11+00:00) ยท device ci-emulator-api34 ยท CI run

ํŒ์ •: |๋ณ€ํ™”์œจ| > ์ž„๊ณ„๊ฐ’ AND |ฮ”| > 2ฯƒยท์ธก์ •๋…ธ์ด์ฆˆ AND |ฮ”| > ์ตœ์†Œ์œ ์˜์ฐจ. ๐ŸŸก = ์ž„๊ณ„๊ฐ’์€ ๋„˜์—ˆ์ง€๋งŒ ๋…ธ์ด์ฆˆ ๋ฒ”์œ„ ์•ˆ(์‹คํŒจ ์•„๋‹˜).

This branch was successfully deployed

1 active deployment
Goms-v3 โ€” 46a6cb3d Deployed Sep 23, 2026 by aiden30015 via flutter_ci #245
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: perf CI๊ฐ€ ์ฝ”๋“œ ๋ณ€๊ฒฝ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‹คํŒจํ•จ

1 participant