tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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