Monday, February 29, 2016

How much dotTrace .dtp snapshot can help UI slow and freeze issues

(1)time distribution, rollup and hotspot cannot identify which functions causes UI slow directly. In fact, hotspot list will overrun/hide problem.  e.g. User experience slow/wrong updates on Datagrid. That would not be hot but slow, and there are no way that will come up on your list.
      Only WPF Performance suite can identify slowness by frame rate comparison when sending fake data to two UI portions.

(2) But if you know your codebase well, then trace down using time distribution would be great. e.g Startup is slow and you can find the code path to walk down critical path using own time legend.

(3) Threads/Calls compare children time vs. parent rollup up time. e.g. function "DispatchQuote" 15% sub-divide to "BlockCollection" 15%, "OnQuoteChanged" 0%. This particularly indicated that Data did not overwhelm UI since it seems to have slowed down by blocking. So guessing through code on ViewModel Properties.
 
(4) There is a legend to identify threads doing message pumping. Some of these threads run user code waiting for background data. So could be candidate for BeginInvoke so UI would be more responsive and also not allow two UI element trying get to the top. In particular, Main Thread does message pumping and could have a lot of user code. That could help trace where UI Blocking happens.

(5) Adjust time is a work planning tools, no useful for diagnostics.


No comments:

Post a Comment