<aside> <img src="/icons/crayon_orange.svg" alt="/icons/crayon_orange.svg" width="40px" />

분업 과정에서 컴포넌트가 겹치는 이슈를 예방하고, 비동기적으로 개선사항을 나누기 위해 작성하는 문서

규칙

리팩토링/최적화 방향

J145_신유진

신유진 ⇒ Player 폴더에 있는 컴포넌트들 먼저 확인해보려고 합니다, contentShareView

Player

첫 프로파일링 결과

{F32B069D-CC6F-41DC-835C-2036C896FE36}.png

requestFrameAnimation으로 인해 잦은 리렌더링이 발생하지만 일반적으로 오래걸리진 않는 것으로 보였다. 그러나 5ms 이상만 보이도록 설정한 결과 종종 8ms~11ms정도 걸리는 경우가 존재하는 걸 확인했다.

{B8011AA8-C082-45A5-B7C3-75110071FF9C}.png

원인이 무엇일지 확인해본 결과,

{53F69775-BA97-47BF-9A53-DB408949E7B2}.png

Slider가 높은 비중을 차지한다는 것을 확인할 수 있었다.

Slider가 오래걸리는 원인은 뭘까?

불필요한 자식 컴포넌트의 리렌더링 막기

Player의 fraction 상태는 requestAnimationFrame에 의해 매우 자주 변한다. 그러므로 Player 컴포넌트도 매우 자주 리렌더링되는데, 해당 상태와 무관한데도 자식 컴포넌트들까지 리렌더링되는 경우가 발생했다.

{19302398-56F1-4A7C-9CD1-C45D97BCA7D2}.png