Skip to content

[docs]: 페이지네이션 성능 측정 (FCP 60% 단축) #991

Description

@chae-dahee

테스트 내용 설명

#870 이하
CSMDict

  1. view, engine reverse 제거
  2. csm 페이징, 캐싱

테스트 시나리오 1: 초기 구동 및 첫 페이지 로딩 시간

방법 1 순수 분석 시간

21,038 로그 React 저장소 기존 total_analysis_time 페이징 init_parsing 페이징 analyze_git_first_page
1회 13.003s 12.676s 0.556ms
2회 12.850s 12.486s 0.555ms
3회 12.815s 12.075s 0.563ms
4회 12.913s 12.839s 0.535ms
5회 12.578s 11.810s 0.587ms
  • [기존] total_anaysis_time : 페이징 없는 전체 초기 분석 시간
  • [페이징] init_parsing : 초기 파싱 시간. init() 함수가 실행되는 데 걸리는 전체 시간
  • [페이징] analyze_git_first_page : init 이후 첫 페이지 분석 시간 . 보여줄 데이터를 생성하는 데 걸리는 시간

방법 2 : FCP, TBT, INP 분석 (VSCode Webview Developer Tools)

21,038 로그 React 저장소 기존 페이징
FCP 58.740s 23.148s
TBT / INP 335.63ms / 408ms 0ms / 65ms
  • web-vitals를 사용해 소숫점 3자리까지 추출

<기존 TBT 335.63ms 소요>

Image

<페이징 도입 : FCP 23.148ms TBT 0ms 소요>

Image

결론

  • 방법 2
    • 모든 데이터를 한 번에 처리하며 발생했던 렌더링 부하를 줄임
    • 앱 멈춤 현상(TBT) 0ms, 반응성(INP) 향상
    • 렌더링 시간(FCP) 59.4% 단축
    • 프론트엔드의 reverse(), 데이터 가공 단계를 단축해 사용자에게 보이는 화면을 더 빨리 띄울 수 있었습니다.
  • 방법 1
    • 순수 백엔드 소요 시간 평균값은 기존과 유사
    • init 무거운 작업의 단계 구분 및 분류
    • 추후 단게적으로 init_parsing 을 개선할 수 있는 지표가 되었습니다.

참고

추후

  • 시나리오 2: "Load More" 페이지 추가 로딩 시간
  • 시나리오 3: 캐시된 페이지 로딩 시간
    내용 본문에 채우도록 하겠습니다.

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions