profiling_categories.yaml (8192B)
1 # This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 5 # Profiling categories 6 # ==================== 7 # This file defines all profiling categories with their sub-categories. It is 8 # parsed by generate_profiling_categories.py at build time to create 9 # ProfilingCategoryList.h and profiling_categories.rs files. 10 # 11 # Profiling sub-categories are applied to each sampled stack to describe the 12 # type of workload that the CPU is busy with. Only one sub-category can be 13 # assigned so be mindful that these are non-overlapping. The active category is 14 # set by pushing a label to the profiling stack, or by the unwinder in cases 15 # such as JITs. A profile sample in arbitrary C++/Rust will typically be 16 # categorized based on the top of the label stack. 17 # 18 # Each category consists of a name and a set of attributes that are described below: 19 # 20 # name [required] 21 # ==== 22 # Name of the profiling category. This will be used in the C++ enum fields (not 23 # by Rust). 24 # 25 # label [required] 26 # ===== 27 # Label of the profiling category. This a more human readable string for the 28 # category. Label will be displayed in the Firefox Profiler front-end. But also 29 # this will be used as a Rust enum field (with non-alphanumeric characters 30 # removed) because it's more idiomatic for Rust enums than name fields (which 31 # are snake cased fields with all caps, which is not idiomatic to rust enum 32 # field). 33 # 34 # color [required] 35 # ===== 36 # Color that this category will show up as in the Firefox Profiler front-end. 37 # The list of available color names for categories is: 38 # - transparent 39 # - blue 40 # - brown 41 # - darkgrey 42 # - green 43 # - grey 44 # - lightblue 45 # - lightgreen 46 # - lightred 47 # - magenta 48 # - orange 49 # - purple 50 # - red 51 # - yellow 52 # 53 # subcategories [required] 54 # ============= 55 # A list of sub-categories that belong to this category. 56 # There must be at least one sub-category for each category and there must be at 57 # least one category with the same name as the category to indicate the default 58 # sub-category. Each sub-category must have name and label attributes. 59 # 60 # name attribute should either be the same as the category (for default 61 # sub-category) or should start with parent category name + underscore 62 # (e.g. JS_Parsing). 63 # 64 # label attribute has the same purpose as parent category label attribute. 65 # 66 # For example: 67 # - name: JS 68 # subcategories: 69 # - name: JS 70 # label: Other 71 # - name: JS_Parsing 72 # label: Parsing 73 # 74 # Note that the first sub-category has the same name with the category. This is 75 # the default sub-category. Also note the other sub-categories starting with the 76 # category name + underscore. 77 # 78 79 - name: IDLE 80 label: Idle 81 color: transparent 82 subcategories: 83 - name: IDLE 84 label: Other 85 86 - name: OTHER 87 label: Other 88 color: grey 89 subcategories: 90 - name: OTHER 91 label: Other 92 - name: OTHER_PreferenceRead 93 label: Preference Read 94 - name: OTHER_Profiling 95 label: Profiling 96 97 - name: TEST 98 label: Test 99 color: darkgray 100 subcategories: 101 - name: TEST 102 label: Test 103 104 - name: LAYOUT 105 label: Layout 106 color: purple 107 subcategories: 108 - name: LAYOUT 109 label: Other 110 - name: LAYOUT_FrameConstruction 111 label: Frame construction 112 - name: LAYOUT_Reflow 113 label: Reflow 114 - name: LAYOUT_CSSParsing 115 label: CSS parsing 116 - name: LAYOUT_SelectorQuery 117 label: Selector query 118 - name: LAYOUT_StyleComputation 119 label: Style computation 120 - name: LAYOUT_Destroy 121 label: Layout cleanup 122 - name: LAYOUT_Printing 123 label: Printing 124 125 - name: JS 126 label: JavaScript 127 color: yellow 128 subcategories: 129 - name: JS 130 label: Other 131 - name: JS_Parsing 132 label: Parsing 133 - name: JS_BaselineCompilation 134 label: JIT Compile (baseline) 135 - name: JS_IonCompilation 136 label: JIT Compile (ion) 137 - name: JS_Interpreter 138 label: Interpreter 139 - name: JS_BaselineInterpret 140 label: JIT (baseline-interpreter) 141 - name: JS_Baseline 142 label: JIT (baseline) 143 - name: JS_IonMonkey 144 label: JIT (ion) 145 - name: JS_Builtin 146 label: Builtin API 147 - name: JS_WasmIon 148 label: Wasm (ion) 149 - name: JS_WasmBaseline 150 label: Wasm (baseline) 151 - name: JS_WasmOther 152 label: Wasm (other) 153 154 - name: GCCC 155 label: GC / CC 156 color: orange 157 subcategories: 158 - name: GCCC 159 label: Other 160 - name: GCCC_MinorGC 161 label: Minor GC 162 - name: GCCC_MajorGC 163 label: Major GC (Other) 164 - name: GCCC_MajorGC_Mark 165 label: Major GC (Mark) 166 - name: GCCC_MajorGC_Sweep 167 label: Major GC (Sweep) 168 - name: GCCC_MajorGC_Compact 169 label: Major GC (Compact) 170 - name: GCCC_UnmarkGray 171 label: Unmark Gray 172 - name: GCCC_Barrier 173 label: Barrier 174 - name: GCCC_FreeSnowWhite 175 label: CC (Free Snow White) 176 - name: GCCC_BuildGraph 177 label: CC (Build Graph) 178 - name: GCCC_ScanRoots 179 label: CC (Scan Roots) 180 - name: GCCC_CollectWhite 181 label: CC (Collect White) 182 - name: GCCC_Finalize 183 label: CC (Finalize) 184 185 - name: NETWORK 186 label: Network 187 color: lightblue 188 subcategories: 189 - name: NETWORK 190 label: Other 191 192 - name: GRAPHICS 193 label: Graphics 194 color: green 195 subcategories: 196 - name: GRAPHICS 197 label: Other 198 - name: GRAPHICS_DisplayListBuilding 199 label: DisplayList building 200 - name: GRAPHICS_DisplayListMerging 201 label: DisplayList merging 202 - name: GRAPHICS_LayerBuilding 203 label: Layer building 204 - name: GRAPHICS_TileAllocation 205 label: Tile allocation 206 - name: GRAPHICS_WRDisplayList 207 label: WebRender display list 208 - name: GRAPHICS_Rasterization 209 label: Rasterization 210 - name: GRAPHICS_FlushingAsyncPaints 211 label: Flushing async paints 212 - name: GRAPHICS_ImageDecoding 213 label: Image decoding 214 - name: GRAPHICS_WebGPU 215 label: WebGPU 216 - name: GRAPHICS_VSync 217 label: VSync triggered animation 218 219 - name: DOM 220 label: DOM 221 color: blue 222 subcategories: 223 - name: DOM 224 label: Other 225 226 - name: JAVA_ANDROID 227 label: Android 228 color: yellow 229 subcategories: 230 - name: JAVA_ANDROID 231 label: Other 232 233 - name: JAVA_ANDROIDX 234 label: AndroidX 235 color: orange 236 subcategories: 237 - name: JAVA_ANDROIDX 238 label: Other 239 240 - name: JAVA_LANGUAGE 241 label: Java 242 color: blue 243 subcategories: 244 - name: JAVA_LANGUAGE 245 label: Other 246 247 - name: JAVA_MOZILLA 248 label: Mozilla 249 color: green 250 subcategories: 251 - name: JAVA_MOZILLA 252 label: Other 253 254 - name: JAVA_KOTLIN 255 label: Kotlin 256 color: purple 257 subcategories: 258 - name: JAVA_KOTLIN 259 label: Other 260 261 - name: JAVA_BLOCKED 262 label: Blocked 263 color: lightblue 264 subcategories: 265 - name: JAVA_BLOCKED 266 label: Other 267 268 - name: MAILNEWS 269 label: Mailnews 270 color: brown 271 subcategories: 272 - name: MAILNEWS 273 label: Other 274 275 - name: IPC 276 label: IPC 277 color: lightgreen 278 subcategories: 279 - name: IPC 280 label: Other 281 282 - name: MEDIA 283 label: Media 284 color: orange 285 subcategories: 286 - name: MEDIA 287 label: Other 288 - name: MEDIA_CUBEB 289 label: Cubeb 290 - name: MEDIA_PLAYBACK 291 label: Playback 292 - name: MEDIA_RT 293 label: Real-time rendering 294 295 # We don't name this category ACCESSIBILITY 296 # because it's already defined as a macro. 297 - name: A11Y 298 label: Accessibility 299 color: brown 300 subcategories: 301 - name: A11Y 302 label: Other 303 304 - name: PROFILER 305 label: Profiler 306 color: lightred 307 subcategories: 308 - name: PROFILER 309 label: Other 310 311 - name: TIMER 312 label: Timer 313 color: grey 314 subcategories: 315 - name: TIMER 316 label: Other 317 318 - name: REMOTE_PROTOCOL 319 label: Remote-Protocol 320 color: grey 321 subcategories: 322 - name: REMOTE_PROTOCOL 323 label: Other 324 325 - name: SANDBOX 326 label: Sandbox 327 color: grey 328 subcategories: 329 - name: SANDBOX 330 label: Other 331 332 - name: TELEMETRY 333 label: Telemetry 334 color: grey 335 subcategories: 336 - name: TELEMETRY 337 label: Other 338 339 - name: ML 340 label: ML 341 color: magenta 342 subcategories: 343 - name: ML 344 label: Other 345 - name: ML_INFERENCE 346 label: Inference 347 - name: ML_SETUP 348 label: Setup