강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

easyiscat님의 프로필 이미지
easyiscat

작성한 질문수

프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1

1-6) bottleneck 코드 탐색

removeSpeical 함수를 줄여야겠다고 하는 이유!

작성

·

278

1

안녕하세요, 강의 잘 보고있습니다. 좋은 강의를 제공해주셔서 감사합니다.

 

제가 이번 강의에서 궁금한게 10:24 쯔음, removeSpeicalCharacter 함수가 Article 컴포넌트 렌딩 시간의 대부분을 차지한다고 하셨고, GC가 많이 작동되어 함수 실행이 끊긴거라고 말씀해주신걸로 기억합니다.

 

혹시 이 중에서, GC가 많이 작동되어 함수 실행이 끊겼기 떄문에 아 removeSpeicalCharacter 함수를 리펙토링을 진행해야겠다고 판단할 수 있는 건가요?? 그 기준이 궁금합니다!

답변 1

2

유동균님의 프로필 이미지
유동균
지식공유자

안녕하세요 easyiscat 님,

병목 함수에 관해서 문의를 주셨는데요,

어떤 함수 문제를 일으키는지를 판단하는 방법은 여러가지가 있을 겁니다.
몇가지 나열해보면 로직 자체가 비효율적이여서 시간을 많이 잡아먹는 경우도 있을 것이고, 메모리를 심하게 낭비하는 경우도 있을 겁니다.

해당 예제의 경우는 비효율적인 로직으로 인해 시간과 메모리를 모두 낭비한 경우인데요, 메모리가 낭비되면서 가비지콜렉터도 많이 동작했고 그걸로 많은 병목이 생긴걸 알 수 있었습니다.

물론 그 뿐만 아니라 애초에 함수가 실행되는 시간이 굉장히 길어서 가비지콜렉터가 아니더라도 알 수 있었겠죠.

판단은 상황에 따라 다르겠지만 함수의 실행 시간이 비정상적으로 길다고 느껴지면 체크해볼 필요가 있습니다.

그럼 답변이 도움되셨길 바라며, 강의에 관심을 가져주셔서 감사합니다. :)

easyiscat님의 프로필 이미지
easyiscat

작성한 질문수

질문하기