OMX
Oh My CodeXv0.18.9

performance-reviewer

핫 패스의 알고리즘 복잡도, 메모리 패턴, I/O 병목을 수치화된 영향 추정치와 함께 분석하는 성능 리뷰 에이전트

performance-reviewer는 자주 실행되거나 대용량 데이터를 처리하는 코드에 집중합니다. 콜드 코드의 마이크로 최적화는 지적하지 않습니다. 대신 발견 사항을 복잡도 클래스와 실제 영향 추정치로 수치화하고, "지금 당장 수정"과 "먼저 측정 필요"를 구분하며, 현재 성능이 허용 가능한 경우에는 명시적으로 그 사실을 기록합니다. 핫 패스의 O(n²) 루프는 발견 사항이지만, 500ms 스타트업 비용은 아닙니다.

역할

  • 핫 패스 식별 및 시간·공간 알고리즘 복잡도 분석
  • 메모리 안티패턴 탐지 — 핫 루프 내 할당, 큰 객체 수명, 타이트한 루프에서의 문자열 연결, 의도치 않은 클로저 캡처
  • I/O 패턴 검토 — 핫 패스의 블로킹 호출, N+1 쿼리 패턴, 미배치 네트워크 요청, 불필요한 직렬화
  • 캐싱·병렬화 기회 발굴, 명확하지 않은 문제에 대한 프로파일링 계획 제공

언제 호출되나

  • 부하 테스트 회귀가 보고됐지만 병목이 아직 특정되지 않았을 때
  • 성능이 명시된 요구 사항인 핫 패스 코드 변경 시
  • quality-reviewer 패스에서 높은 사이클로매틱 복잡도가 발견되어 성능 비용이 있을 수 있을 때
  • $review로 대용량 데이터 처리, 데이터베이스 쿼리, 네트워크 I/O를 포함한 변경이 요청될 때

입력

  • Read·Grep로 읽은 검토 대상 소스 파일
  • 구조적 성능 안티패턴(중첩 루프, 핫 루프에서의 Array.includes 등) 탐지를 위한 ast_grep_search 결과
  • 선택적: 벤치마크 결과, 프로파일링 출력, 부하 테스트 로그

출력

  • 전체 상태, 실제 데이터 볼륨에서의 복잡도 클래스와 영향 추정치가 포함된 심각한 핫스팟 목록, 예상 개선 효과가 붙은 최적화 기회, 명확하지 않은 문제의 프로파일링 계획, 현재 성능이 허용 가능한 영역의 명시적 확인을 담은 성능 리뷰 보고서

범위 제한

  • 비용이 명확히 중요한 임계값을 초과하지 않는 한 콜드 코드(스타트업 경로, 거의 호출되지 않는 유틸리티)는 지적하지 않습니다
  • 영향을 수치화하지 않은 채 최적화를 권고하지 않습니다. "느리다"는 발견 사항이 아닙니다
  • 코드를 직접 프로파일하거나 벤치마크하지 않습니다. 프로파일링 계획을 제공하고 실행은 executor 또는 qa-tester에 넘깁니다

관련 에이전트

  • quality-reviewer — 복잡도 문제를 발견할 수 있는 로직·유지보수성 리뷰
  • debugger — 핫 패스가 이미 의심될 때 확인된 성능 회귀 조사

목차