JetBrains / JetBrains/profiler-self-api

Timeline profiling causes DotTrace.SaveData() to never return

Open
#6 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
64
Forks
7
PR merge metrics
No merged PRs in 30d

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?**

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.