-
Notifications
You must be signed in to change notification settings - Fork 6
Description
I have a .Net Framework 4.x WPF application that occasionally (1% occurrence rate) has a performance issue when loading data. I have narrowed the problem down to a very specific part of the WPF application that is switching screens in my WPF application.
To try to get more information, I added dotTrace self profiling to my application. It starts up a profiling snapshot, then if the performance issue occurs, saves it out (if not, then the snapshot is discarded).
This all works fine if I use the default "Sampling" style of profiling. But if I call config.UseTimelineProfilingType(false); during the setup of the profiler, then I have problems. Specifically, when I later call DotTrace.SaveData(); the call never returns. If I call it from my UI thread then the application hangs. If I call it from a background thread, then that thread never ends.
This is compounded when I go to try to startup another snapshot. The call to DotTrace.StartCollectingData() also never returns once the call to DotTrace.SaveData() has gone into an nonresponsive state.
I have tried just giving it a long time to save the file, but even after several hours, the file does not save. (And it takes just a few seconds to successfully save when using the "Sampling" default style of profiling.)
I would love to be using the Timeline style of profiling. Is there something I can do to make this work?