어디에 사용할까
함수 호출 방식별 속도 비교에서 바꿀 결과와 유지할 기존 동작을 한 문장씩 적습니다. 일반 함수, arrow와 bound 함수는 this·constructor 의미가 달라 동일 계약일 때만 호출 비용을 비교할 수 있습니다.
준비할 내용
빠르다는 인상 대신 런타임 버전, warm-up, 입력 분포, p50·p95·p99와 CPU·I/O·할당량을 기록합니다. 같은 결과와 오류 처리를 제공하지 않는 두 구현의 숫자는 비교 자료가 아닙니다. 현재 version의 공식 문서와 실제 설정을 확인하고 대표·경계·실패 사례를 준비합니다. Performance profile, heap snapshot, allocation timeline, long task와 promise rejection을 재현 입력과 함께 수집한다.
| 순서 | 할 일 |
|---|---|
| 1 | 수정 전 결과와 되돌릴 기준 저장 |
| 2 | 핵심 사실과 맞닿은 한 곳만 변경 |
| 3 | 같은 입력으로 수정 전후 비교 |
구현 흐름과 마무리
profiler와 실행 계획에서 가장 큰 비용을 먼저 줄입니다. 메서드 하나를 바꾸는 micro optimization보다 알고리즘 복잡도, 데이터 왕복, 복사와 직렬화 횟수를 먼저 고칩니다. 작업 수명주기와 소유권을 명시하고 입력·반복·동시성·출력 크기에 상한을 둔다. 예상과 다르면 변경을 더 얹지 말고 처음 달라진 값으로 돌아갑니다. 정답뿐 아니라 실행 시간, 할당량, GC, 이벤트 루프 지연과 취소 후 남은 작업을 비교한다. 대표 입력과 최악 입력을 분리해 독립된 프로세스로 반복하고 처리량 증가가 오류율, 메모리, 가독성과 운영 복잡성을 악화시키지 않았는지 확인합니다.
공식 문서와 적용 범위
문서의 기본값과 동작은 version에 따라 달라질 수 있습니다. 현재 runtime·framework version, 실제 입력과 요청 흐름에서 다시 확인합니다.