1. 개요
Chromium, Chrome, V8 등에서 사용되는 트레이싱 포맷.2. 포맷
3. 이벤트
다음 총 13가지의 종류가 존재하며, 각각의 이벤트 종류에 따라 해당 이벤트를 구성하는 페이즈가 또다시 존재한다. 가령B 페이즈 다음 E 페이즈가 발생하여 하나의 duration 이벤트를 이루는 식이다. 각 이벤트 타입에 속하는 페이즈는 한 글자 아스키 문자로 구분한다.| 종류 | 포함 페이즈 |
| duration | B, E |
| complete | X |
| instant | i |
| counter | C |
| async | b, n, e |
| flow | s, t, f |
| sample | P |
| object | N, O, D |
| metadata | M |
| memory dump | V, v |
| mark | R |
| clock sync | c |
| context | (, ) |
이외에도 타입 무관하게 공통적으로 가지는 속성이 있다.
| 이름 | 타입 | 필수 여부 | 설명 |
name | 문자열 | O | 이벤트 이름 |
cat | 문자열 | O | 해당 이벤트가 속하는 카테고리 집합 |
ph | 문자열 | O | 페이즈 타입 |
ts | 숫자 | O | 해당 이벤트가 발생한 시점 |
tts | 숫자 | X | wall time을 기준으로 하는 ts와 다르게 각 thread time을 기준으로 측정된 시간값이 들어간다. |
pid | 숫자 | O | 프로세스 ID |
tid | 숫자 | O | 스레드 ID |
args | JSON 값 | O | |
cname | 문자열 | X |
4. 지원 소프트웨어
- chrome://tracing - Chromium, Chrome 및 파생 웹 브라우저.
- V8#
- Qt Creator의 Chrome Trace Format Visualizer - QML 트레이싱
- UI:
- Catapult Trace-Viewer# - Chromium의 하위 프로젝트 중 하나인 Catapult의 시각화 UI. chrome://tracing 등에서 사용되는 내장 UI가 바로 이것이다.
- Perfetto UI - 안드로이드 외 환경에서도 구글이 밀고 있기 때문에 최근엔 더 자주 쓰이는 편.
- speedscope#77