Attaching dotMemory freezes application and shows no data in graph

When I attach dotMemory to my running application on Windows 11 it causes the application to freeze and dotMemory gets no data in the graph.  This use to work so I am not sure what changed.  Sometimes it starts getting data and the graph updates and then it pauses and the graph flatlines, sometimes after several seconds it comes back.  If I detach the application continues fine.  The detach can take several seconds to actually detach.  I am not even pressing Get Snapshot, so it is not related to that.

0
6 comments

JetBrains dotMemory 2023.1 Build 231.0.20230404.122145 built on 2023-04-04
dotMemory 2023.1.20230404.122145

0

Hi!

Does your application use Server GC?

Could you please collect logs for us:

  • Close standalone dotMemory.
  • Clear %temp%\JetLogs folder.
  • Go to dotMemory installation folder: %localappdata%\JetBrains\Installations\dotMemory[N]
  • Using Windows command-line start dotMemory with arguments: dotMemory.UI.64.exe /LogLevel=Trace
  • Start configuring a profiling session (select Profiling section, choose your process).
  • Press Ctrl+Shift+Alt+F11.
  • In the Expert options dialog window, select the Enable logs checkbox.
  • Type 3887751438631 in “Log mask” field or enable the next checkboxes: Com, Api, Bridge, Snapshot, MetaDataGt, GcCb, GcReferencesCb ,ClassGt, FieldResolverGt, ClassRecoveryGt, MemoryDumpGt, AppDomainRecoveryGt, ThreadRecoveryGt, ClassGt, GcAllocationsCb, MemoryAllocationGt
  • Click Save.
  • Run the profiling session.
  • Reproduce the issue.
  • Detach from the process.
  • Close dotMemory.
  • Look for the logs in the 'JetLogs' folder.

You can upload logs to our ftp.



 

0

2024_03_12_WDiDC5NnSaixpcN34q4k2Q upload id

0

GC settings:

    "configProperties": {
     "System.GC.Server": true,

0

Just an FYI: dotTrace works fine with the same process.

0

Hello Sean,

This issue occurs because dotMemory triggers a full GC on attaching to the process. The profiler core initiates a full GC immediately upon connection since otherwise there would be no counters displayed in the UI until the first garbage collection event occurs.

Updates to GC heaps happen only under the profiler at the points when GC is started or finished. Therefore, executing this type of GC is strongly necessary to display correct UI information. The profiler uses for the heaviest type as it is the only way to obtain the necessary data.

A full GC can take a long time in the case of server GC. This is why you are having such UI issues right after attaching or detaching. You may also encounter some UI issues when getting a snapshot and also on each GC if it takes several seconds. Usually this effect is not so noticeable if the server GC is turned off.

0

Please sign in to leave a comment.