프로파일러

브라우저 자동화 동안 크롬 개발자 도구 성능 프로파일을 캡처합니다.
프로파일을 사용하여 느린 페이지 로드, 비용이 큰 자바스크립트, 레이아웃 트래싱, 그리고 에이전트 워크플로에서의 다른 성능 병목 현상을 진단할 수 있습니다.

기본 사용법

# 프로파일링 시작
agent-browser profiler start

# 작업 수행
agent-browser navigate https://example.com
agent-browser click "#button"

# 중지하고 프로파일 저장
agent-browser profiler stop ./trace.json

출력된 JSON 파일은 크롬 개발자 도구, Perfetto UI 또는 크롬 추적 이벤트 형식을 지원하는 모든 도구에 불러올 수 있습니다.

명령어

명령어설명
profiler start성능 프로파일 기록 시작
profiler start --categories <list>사용자 지정 추적 카테고리로 시작
profiler stop [path]프로파일링 중지 및 파일로 저장

추적 카테고리

--categories 플래그는 쉼표로 구분된 크롬 추적 카테고리 목록을 수용합니다.

agent-browser profiler start --categories "devtools.timeline,v8.execute,blink.user_timing"

기본 카테고리는 devtools.timeline, v8.execute, blink, blink.user_timing, latencyInfo, renderer.scheduler, toplevel, 그리고 세부적인 CPU 프로파일링과 호출 스택 분석을 위한 여러 disabled-by-default-* 카테고리 포함됩니다.

일반 카테고리

카테고리포착되는 내용
devtools.timeline표준 개발자 도구 성능 이벤트
v8.execute자바스크립트 실행에 소요된 시간
blink렌더러 이벤트 (레이아웃, 페인팅, 스타일)
blink.user_timingperformance.mark()performance.measure() 호출
latencyInfo입력에서 화면 표시까지의 지연 시간
disabled-by-default-v8.cpu_profiler샘플링 기반 자바스크립트 CPU 프로파일링

출력 형식

출력은 크롬 추적 이벤트 형식의 JSON 파일입니다:

{
  "traceEvents": [
    {
      "cat": "devtools.timeline",
      "name": "RunTask",
      "ph": "X",
      "ts": 12345,
      "dur": 100,
      "pid": 1,
      "tid": 1
    }
  ],
  "metadata": {
    "clock-domain": "LINUX_CLOCK_MONOTONIC"
  }
}

metadata.clock-domain 필드는 호스트 플랫폼(리눅스 또는 맥)을 반영합니다. 윈도우에서는 이 필드가 생략됩니다.

프로파일 보기

  • 크롬 개발자 도구 -- 성능 탭 > 프로파일 불러오기
  • Perfetto -- https://ui.perfetto.dev/ (JSON 파일 드래그 앤 드롭)
  • 추적 뷰어 -- 어떤 크로뮴 브라우저에서도 chrome://tracing

활용 사례

  • 페이지 로드 분석 -- 네비게이션 프로파일링을 통해 느린 리소스, 긴 작업, 레이아웃 이동 식별
  • 상호작용 프로파일링 -- 클릭, 폼 입력 및 기타 사용자 상호작용의 비용 측정
  • 지속적 통합 회귀 검사 -- 빌드별로 프로파일 캡처 후 시간에 따른 추적 데이터 비교
  • 에이전트 워크플로 최적화 -- 에이전트 워크플로에서 가장 비용이 큰 단계 식별

제한 사항

  • 크로뮴 기반 브라우저(크롬, 엣지)에서만 작동합니다. 파이어폭스나 웹킷에서는 지원되지 않습니다.
  • 프로파일링 활성화 중 메모리에 추적 데이터가 누적됩니다(최대 500만 이벤트). 관심 영역 이후에는 가능한 한 빨리 프로파일링을 중단하세요.
  • 정지 시 데이터 수집에는 30초 타임아웃이 있습니다. 브라우저가 응답하지 않으면 정지 명령이 실패할 수 있습니다.
  • 출력 경로를 제공하지 않으면, 프로파일은 agent-browser 임시 디렉터리 하에 자동 생성된 경로에 저장됩니다.