비싼 연산의 기준은 무엇일까?

Mar 22, 2023

리액트에서 useMemo는 성능 최적화를 위해 비싼 연산에만 사용하라고 강조한다. 그런데 이 비싸다는 기준은 어떻게 판단해야 할까?
매번 프로파일러를 켜서 성능을 측정하는 것도 쉬운 일은 아니기 때문에 고민이 되었었는데, 이번에 새로 작업된 리액트 공식 문서에서는 다음과 같은 기준을 제시하였다.

console.time('filter array');
const visibleTodos = filterTodos(todos, tab);
console.timeEnd('filter array');

문서에서는 만약 기록된 실행 시간이 상당한 양 (예를 들면, 1ms 이상)인 경우, 해당 계산을 메모하는 것이 합리적일 수 있다고 설명한다.
물론 개발모드에서는 프로덕션용 앱과 타이밍이 다를 수 있다는 점, 시스템(개발용 맥북)과 실제 사용자의 시스템(나의 경우 스마트폰)이 다를 수 있다는 점은 감안해야 한다.

참고