mono / monodevelop

MonoDevelop is a cross platform .NET IDE
http://www.monodevelop.com
2.83k stars 1.01k forks source link

Consider adding built-in support for profiling/debugging spawned applications #4605

Open Therzok opened 6 years ago

Therzok commented 6 years ago

We should implement built-in support that passes log profiler arguments to the mono process associated with the spawned application or uses the PerformanceDiagnosticsAddin trick.

This should be done for remote process servers and clients, ProcessService users, etc.

Mostly a helper tool for profiling processes without actually relying on modifying code.

Maybe we could have a MONODEVELOP_PROFILER_FILTER=<list of process names separated by semicolon> and any process matching the filter would have profiler arguments attached.

Probably implement this via UI, not env vars in Debug* only configurations so we can toggle it at process level and not have to restart the IDE if we want to profile something outside the IDE.

The same things as above, but for debugging could be applied.

Therzok commented 6 years ago

At the same time, we could just use sample on AOT'd assemblies.

craigfowler commented 6 years ago

Not sure on the feelings about "me too" comments but this would be of great benefit to me too. Application profiling is not a frequent activity for me. Any time i need to do it via the command line via mono I always find myself needing to refer to reference as to how it's done (not the principles but exactly what command line options I need to throw at mono to make it work).

A guided UI (even for just the most common scenarios) in MD would save me time in reading and re-reading docs, and might mean I'm more inclined to fire up the profiler (if the barrier to entry were lower).