-
-
Notifications
You must be signed in to change notification settings - Fork 7
Help: Main
BlazorTrace is a tool for tracing most common problems when developing a Blazor application like unnecessary renders, memory leaks, slow components. It works as a singleton service, which means that the data from all tabs will be stored in one place. For convenience use the shortcuts of "F1" to show the tool and "Escape" to hide the tool.

To save and compare snapshots with the current status or with other stored snapshots, use the dropdowns at the top of the modal. Detailed memory information is available only for the current snapshot, as the information gets too big to be stored locally.
By using the two buttons on the right of the dropdowns you can:
- clear the information about the current session - useful if you need to clean the data before an action, so you can check only how it influence the interface
- save the current data to a snapshot locally, so you can later compare it to current or another stored snapshot. By default snapshots are labeled using the datetime of their creation. You can rename them from the "Snapshots" menu item.

There are two main elements that are traced:
- methods - these are traces logged on methods enter or exit
- signals - these are custom pings/events that you can place, to check how many times an event or action was performed.
You can sort the data by clicking on the corresponding menu item.

On the right side you can review or manage some of the additional elements of the tool.
- RealTime On/Off - this will automatically refresh the information each second. Suitable for monitoring for memory leaks, loops or unnecessary rerenders without user interaction
- Muted - the list of all muted filters applied to the data with the option to remove them.
- Snapshots - a list of all snapshots stored locally in your browser, with the option to rename or remove them.
- Help - link to this wiki

You can filter the presented data based on your specific needs. These filters will be stored locally in the browser and automatically reloaded on refresh or application startup.

Each row from the presented data can be interacted with in the following ways:
- pin / unpin - by clicking on the pin icon button, you can make a row appear always on top of the list
- mute - by clicking on the slashed bell icon button, you can select to apply various mute filters, derived from the context of the row, which will hide information based on the assembly of the row, or its component name, method and other. To remove a mute filter, use the "Muted" menu item from the right side navigation.
- calls details - by clicking on the calls info cell of the row (there is a popup icon in front of it), you can review more details about the calls.
- memory details - by clicking on the memory info cell of the row (there is a popup icon in front of it), you can review more details about the memory.
- module - the assembly name of the class / component
- component - the class/component of the trace caller
- method - the method that is traced
- calls - how many trace calls are registered. The tool tries to pair onEnter and onExit calls by processing them in queue and looking for the first unExited call.
- memory - an estimate of the component/class memory at the time of the most recent trace call, by cycling through the component class properties 5 levels deep
- duration - the timespan between of the onEnter and onExit of the most recent trace
- limits - how many times various limits were hit. Listed in the following order by type: method calls, memory total, memory delta, duration