The UI Freeze event indicates time intervals where the application was unable to respond to user input. More specifically, these are time intervals where window messages were not pumped for more than 200 ms or processing of a particular message took more than 200 ms.
The UI thread may be unable to process user input events due to the following reasons:
- Excessive computational work on the UI thread.
- Blocking garbage collection (blocks the UI thread as well).
- Lack of free processor time for the UI thread.
- Excessive file I/O operations.
Typically, Windows applications use a single thread to process the user interface. By default, it is the application main thread. That is why, after you apply the UI Freeze filter, the corresponding time intervals will be selected only on the UI thread.
Select the UI Freeze interval filter to filter out UI freeze time intervals and determine the origin of the freezes. For example, to check whether UI freezes are a result of blocking garbage collections, select the Main thread in the Threads diagram and UI Freeze in Interval Filters. Then check the time shown in the Events | Garbage Collection filter. If it is quite large, then reducing memory traffic makes sense as it definitely affects the UI responsiveness.