ZEP Performance Optimization
πŸ‹οΈ

ZEP Performance Optimization

Description
Published
Published September 16, 2023

Β 
notion image

Performance Optimization

ZEP은 κ²Œμž„μ—”μ§„, ν”„λ ˆμž„μ›Œν¬ μœ„μ—μ„œ κ΅¬λ™λ˜κ³  μ‹€μ‹œκ°„ 데이터λ₯Ό λ°˜μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ RTC와 같은 무거운 κΈ°λŠ₯이 μ„œλΉ„μŠ€μ˜ 핡심 κΈ°λŠ₯ 쀑 ν•˜λ‚˜ 이기 λ•Œλ¬Έμ— μ„±λŠ₯μ΅œμ ν™”κ°€ 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ μ΄λŸ¬ν•œ 도메인 νŠΉμ„±μƒ λ‹¨μˆœνžˆ 쑰금 λŠλ¦¬κ±°λ‚˜ λ²„λ²…μž„κ³Ό 같은 λΆˆνŽΈν•¨μ„ μ£ΌλŠ”κ²ƒμ„ λ„˜μ–΄μ„œ νŠΉμ • ν™˜κ²½μ—μ„œλŠ” μ•„μ˜ˆ μ„œλΉ„μŠ€ μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ ν•œ κ²½μš°λ„ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

μ„±λŠ₯ κ°œμ„  μ „,ν›„ 비ꡐ

cpu 4x slowdown을 μ„€μ •ν•˜μ—¬ κΈ°λ³Έ μ†ŒμΌ“ 슀트레슀 ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜μ—¬, κ°œμ„  μ „κ³Ό ν›„λ₯Ό λͺ…ν™•ν•˜κ²Œ λΉ„κ΅ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ΄μ „μ—λŠ” 200λͺ…μ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ ‘μ†ν•˜λŠ” μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ 거의 μ‚¬μš©ν•  수 없을 μ •λ„λ‘œ ν”„λ ˆμž„ λ“œλžμ΄ λ°œμƒν•˜μ˜€μ§€λ§Œ, κ°œμ„  ν›„μ—λŠ” 훨씬 더 μΎŒμ ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
κ°œμ„  μ „
κ°œμ„  μ „
κ°œμ„  ν›„
κ°œμ„  ν›„
Β 
ZEP의 μ„±λŠ₯을 μ–΄λ–»κ²Œ ν–₯μƒμ‹œμΌ°λŠ”μ§€ κΆκΈˆν•˜μ‹œκ±°λ‚˜, ν•¨κ»˜ 멋진 μ œν’ˆμ„ λ§Œλ“œλŠ” 쒋은 아이디어가 μžˆλ‹€λ©΄ μ±„μš© νŽ˜μ΄μ§€λ₯Ό 톡해 λ§Žμ€ 관심 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸš€

Profiling & Monitoring

Performance Profiling

notion image
크둬의 Performance νƒ­κ³Ό 같은 λΈŒλΌμš°μ € 개발자 λ„κ΅¬μ˜ ν”„λ‘œνŒŒμΌλ§ κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ λ ˆμ½”λ”©ν•˜λ©΄ μ½œμŠ€νƒμ—μ„œ μ‹€ν–‰λœ ν…ŒμŠ€ν¬μ˜ μ‹œκ°„μ„ μΈ‘μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ZEP은 κ²Œμž„κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ, (λ””λ°”μ΄μŠ€λ‚˜ ν™˜κ²½μ— 따라 λ‹¬λΌμ§€μ§€λ§Œ) 60Hz, 즉 μ•½ 16.67ms (0.016초)에 μ—°μ‚°κ³Ό λ Œλ”λ§μ„ λ§ˆμ³μ•Όν•˜μ—¬ ν”„λ ˆμž„ λ“œλž μ—†λŠ” μ›ν™œν•œ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μ‹€μ œλ‘œ 맀 ν”„λ ˆμž„μ„ κ·Έλ¦¬λŠ” λ Œλ”λ§ μŠ€ν…μ˜ 사이클을 ν™•μΈν•˜κ³ , 특히 μ‹œκ°„μ΄ 많이 μ†Œμš”λ˜λŠ” ν…ŒμŠ€ν¬λ‚˜ μ˜ˆμΈ‘ν•˜μ§€ λͺ»ν•œ 비정상적인 ν…ŒμŠ€ν¬λ₯Ό μΆ”μ ν•˜μ—¬ κ°œμ„  μž‘μ—…μ„ μ§„ν–‰ν•©λ‹ˆλ‹€.

Performance Monitor

notion image
λΈŒλΌμš°μ €μ—μ„œλŠ” μ‹€μ‹œκ°„μœΌλ‘œ μ„±λŠ₯을 λͺ¨λ‹ˆν„°λ§ν•  수 μžˆλŠ” κΈ°λŠ₯도 μ œκ³΅ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 CPUλ₯Ό μ–Όλ§ˆλ‚˜ μ‚¬μš©ν•˜κ³  μžˆλŠ”μ§€, λ©”λͺ¨λ¦¬ 릭이 μžˆλŠ”μ§€ μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. "이전보닀 μΎŒμ ν•œ 것 같은데?"와 같은 정성적인 νŒλ‹¨λ³΄λ‹€λŠ” "같은 μ‘°κ±΄μ—μ„œ CPU μ‚¬μš©λ₯ μ΄ 4λΆ„μ˜ 1둜 μ€„μ—ˆμ–΄"와 같은 μ •λŸ‰μ μΈ νŒλ‹¨μ— 큰 도움을 μ€λ‹ˆλ‹€.

Memory Snapshot

notion image
μ„±λŠ₯을 μΈ‘μ •ν•˜κ±°λ‚˜ λͺ¨λ‹ˆν„°λ§ν•  λ•Œ λ©”λͺ¨λ¦¬κ°€ λΉ„μ •μƒμ μœΌλ‘œ ν•΄μ œλ˜μ§€ μ•Šκ³  μŒ“μ—¬ μ¦κ°€ν•˜κ±°λ‚˜, λ„ˆλ¬΄ μž¦μ€ GC νŒ¨ν„΄μ΄ 보여 λ©”λͺ¨λ¦¬ 릭이 μ˜μ‹¬λœλ‹€λ©΄ λ©”λͺ¨λ¦¬ μŠ€λƒ…μƒ·μ„ 뜨고 λΉ„κ΅ν•˜μ—¬ 원인이 λ˜λŠ” μš”μ†Œλ₯Ό 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€.

Next Stage

μ•žμœΌλ‘œ ν•΄κ²°ν•΄μ•Ό ν•  κ³Όμ œλ“€μ΄ 많이 남아 μžˆμ§€λ§Œ, ZEP ν”„λ‘ νŠΈμ—”λ“œ νŒŒνŠΈλŠ” μ—¬λŸ¬ 아이디어와 기법을 ν™œμš©ν•˜μ—¬ μ„±λŠ₯ μ΅œμ ν™”λ₯Ό ν•΄μ™”μŠ΅λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€λŠ” μ΅œλŒ€ν•œ μ₯μ–΄μ§œμžλŠ” 마음으둜 κ°œμ„  μž‘μ—…μ„ 진행해 μ™”μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ„±λŠ₯ κ°œμ„  μ—¬λΆ€λ₯Ό μœ μ˜λ―Έν•˜κ²Œ νŒλ‹¨ν•  κ·Όκ±°λ₯Ό μ •λ¦¬ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λ””λ°”μ΄μŠ€μ˜ μ„±λŠ₯, 맡의 크기, μ‹€μ‹œκ°„μœΌλ‘œ μ ‘μ†ν•œ μœ μ €μ˜ 수, RTC(화상,μŒμ„±)의 컀λ„₯μ…˜ 개수, λ„€νŠΈμ›Œν¬ μ»¨λ””μ…˜ λ“± λ§Žμ€ μš”μ†Œμ™€ λ³€μˆ˜λ“€μ΄ 유기적으둜 μ„±λŠ₯에 영ν–₯을 μ€λ‹ˆλ‹€. λ”°λΌμ„œ, λ‹€μ–‘ν•˜κ³  μœ μ˜λ―Έν•œ ν™˜κ²½κ³Ό μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ •λ¦¬ν•˜κ³  이λ₯Ό μΈ‘μ •ν•˜κ³  λͺ¨λ‹ˆν„°λ§ν•˜λŠ” νŒŒμ΄ν”„λΌμΈμ„ λ§Œλ“€κΈ° μœ„ν•΄ λ…Έλ ₯ν•  κ²ƒμž…λ‹ˆλ‹€. λ˜ν•œ μ΅œμ ν™” κ°€λŠ₯ν•œ ν•œκ³„μ™€ μΆ”κ°€ κΈ°λŠ₯이 μ„±λŠ₯에 λ―ΈμΉ˜λŠ” 영ν–₯, 그리고 ν•œκ³„μ μ— λŒ€ν•œ 인식과 감각을 μ •λ¦½ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•  κ²ƒμž…λ‹ˆλ‹€. πŸƒβ€β™‚οΈ
Β