Bug 1799258 - span_iterator::difference_type s/index_type/ptrdiff/. r=bradwerth
[gecko.git] / mozglue / baseprofiler / build / profiling_categories.yaml
blobd7ba0c37468746fa0547c72cbbe4156d9454e631
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/.
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.
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.
18 # Each category consists of a name and a set of attributes that are described below:
20 # name [required]
21 # ====
22 # Name of the profiling category. This will be used in the C++ enum fields (not
23 # by Rust).
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).
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 # - green
41 # - grey
42 # - lightblue
43 # - magenta
44 # - orange
45 # - purple
46 # - yellow
48 # subcategories [required]
49 # =============
50 # A list of sub-categories that belong to this category.
51 # There must be at least one sub-category for each category and there must be at
52 # least one category with the same name as the category to indicate the default
53 # sub-category. Each sub-category must have name and label attributes.
55 # name attribute should either be the same as the category (for default
56 # sub-category) or should start with parent category name + underscore
57 # (e.g. JS_Parsing).
59 # label attribute has the same purpose as parent category label attribute.
61 # For example:
62 # - name: JS
63 #   subcategories:
64 #     - name: JS
65 #       label: Other
66 #     - name: JS_Parsing
67 #       label: Parsing
69 # Note that the first sub-category has the same name with the category. This is
70 # the default sub-category. Also note the other sub-categories starting with the
71 # category name + underscore.
74 - name: IDLE
75   label: Idle
76   color: transparent
77   subcategories:
78     - name: IDLE
79       label: Other
81 - name: OTHER
82   label: Other
83   color: grey
84   subcategories:
85     - name: OTHER
86       label: Other
87     - name: OTHER_PreferenceRead
88       label: Preference Read
89     - name: OTHER_Profiling
90       label: Profiling
92 - name: TEST
93   label: Test
94   color: darkgray
95   subcategories:
96     - name: TEST
97       label: Test
99 - name: LAYOUT
100   label: Layout
101   color: purple
102   subcategories:
103     - name: LAYOUT
104       label: Other
105     - name: LAYOUT_FrameConstruction
106       label: Frame construction
107     - name: LAYOUT_Reflow
108       label: Reflow
109     - name: LAYOUT_CSSParsing
110       label: CSS parsing
111     - name: LAYOUT_SelectorQuery
112       label: Selector query
113     - name: LAYOUT_StyleComputation
114       label: Style computation
115     - name: LAYOUT_Destroy
116       label: Layout cleanup
118 - name: JS
119   label: JavaScript
120   color: yellow
121   subcategories:
122     - name: JS
123       label: Other
124     - name: JS_Parsing
125       label: Parsing
126     - name: JS_BaselineCompilation
127       label: JIT Compile (baseline)
128     - name: JS_IonCompilation
129       label: JIT Compile (ion)
130     - name: JS_Interpreter
131       label: Interpreter
132     - name: JS_BaselineInterpret
133       label: JIT (baseline-interpreter)
134     - name: JS_Baseline
135       label: JIT (baseline)
136     - name: JS_IonMonkey
137       label: JIT (ion)
138     - name: JS_Builtin
139       label: Builtin API
140     - name: JS_Wasm
141       label: Wasm
143 - name: GCCC
144   label: GC / CC
145   color: orange
146   subcategories:
147     - name: GCCC
148       label: Other
149     - name: GCCC_MinorGC
150       label: Minor GC
151     - name: GCCC_MajorGC
152       label: Major GC (Other)
153     - name: GCCC_MajorGC_Mark
154       label: Major GC (Mark)
155     - name: GCCC_MajorGC_Sweep
156       label: Major GC (Sweep)
157     - name: GCCC_MajorGC_Compact
158       label: Major GC (Compact)
159     - name: GCCC_UnmarkGray
160       label: Unmark Gray
161     - name: GCCC_Barrier
162       label: Barrier
163     - name: GCCC_FreeSnowWhite
164       label: CC (Free Snow White)
165     - name: GCCC_BuildGraph
166       label: CC (Build Graph)
167     - name: GCCC_ScanRoots
168       label: CC (Scan Roots)
169     - name: GCCC_CollectWhite
170       label: CC (Collect White)
171     - name: GCCC_Finalize
172       label: CC (Finalize)
174 - name: NETWORK
175   label: Network
176   color: lightblue
177   subcategories:
178     - name: NETWORK
179       label: Other
181 - name: GRAPHICS
182   label: Graphics
183   color: green
184   subcategories:
185     - name: GRAPHICS
186       label: Other
187     - name: GRAPHICS_DisplayListBuilding
188       label: DisplayList building
189     - name: GRAPHICS_DisplayListMerging
190       label: DisplayList merging
191     - name: GRAPHICS_LayerBuilding
192       label: Layer building
193     - name: GRAPHICS_TileAllocation
194       label: Tile allocation
195     - name: GRAPHICS_WRDisplayList
196       label: WebRender display list
197     - name: GRAPHICS_Rasterization
198       label: Rasterization
199     - name: GRAPHICS_FlushingAsyncPaints
200       label: Flushing async paints
201     - name: GRAPHICS_ImageDecoding
202       label: Image decoding
204 - name: DOM
205   label: DOM
206   color: blue
207   subcategories:
208     - name: DOM
209       label: Other
211 - name: JAVA_ANDROID
212   label: Android
213   color: yellow
214   subcategories:
215     - name: JAVA_ANDROID
216       label: Other
218 - name: JAVA_ANDROIDX
219   label: AndroidX
220   color: orange
221   subcategories:
222     - name: JAVA_ANDROIDX
223       label: Other
225 - name: JAVA_LANGUAGE
226   label: Java
227   color: blue
228   subcategories:
229     - name: JAVA_LANGUAGE
230       label: Other
232 - name: JAVA_MOZILLA
233   label: Mozilla
234   color: green
235   subcategories:
236     - name: JAVA_MOZILLA
237       label: Other
239 - name: JAVA_KOTLIN
240   label: Kotlin
241   color: purple
242   subcategories:
243     - name: JAVA_KOTLIN
244       label: Other
246 - name: JAVA_BLOCKED
247   label: Blocked
248   color: lightblue
249   subcategories:
250     - name: JAVA_BLOCKED
251       label: Other
253 - name: IPC
254   label: IPC
255   color: lightgreen
256   subcategories:
257     - name: IPC
258       label: Other
260 - name: MEDIA
261   label: Media
262   color: orange
263   subcategories:
264     - name: MEDIA
265       label: Other
266     - name: MEDIA_CUBEB
267       label: Cubeb
268     - name: MEDIA_PLAYBACK
269       label: Playback
270     - name: MEDIA_RT
271       label: Real-time rendering
273 # We don't name this category ACCESSIBILITY
274 # because it's already defined as a macro.
275 - name: A11Y
276   label: Accessibility
277   color: brown
278   subcategories:
279     - name: A11Y
280       label: Other
282 - name: PROFILER
283   label: Profiler
284   color: lightred
285   subcategories:
286     - name: PROFILER
287       label: Other
289 - name: TIMER
290   label: Timer
291   color: grey
292   subcategories:
293     - name: TIMER
294       label: Other