프로파일러
브라우저 자동화 동안 크롬 개발자 도구 성능 프로파일을 캡처합니다.
프로파일을 사용하여 느린 페이지 로드, 비용이 큰 자바스크립트, 레이아웃 트래싱, 그리고 에이전트 워크플로에서의 다른 성능 병목 현상을 진단할 수 있습니다.
기본 사용법
# 프로파일링 시작
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_timing | performance.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임시 디렉터리 하에 자동 생성된 경로에 저장됩니다.