Jconsole equivalent for .Net?

I'm looking for a DLL that you could reference to give your .Net profiling capabilities equivalent to jconsole. In particular, I present something like this:

  • You add a DLL to your project
  • You call some init method
  • This provides a set of endpoints (network, TCP, named pipes, whatever).
  • This does not interfere with the performance of your application, so you can work with it during the production process.
  • If you encounter problems, you are connected to the endpoints and profile. You can see the roots of the GC, which memory to use (saved sets), start the GC, ...

Is there something like this?

+4
source share
2 answers

OP: It really is not.

Simon: Jconsole is a side argument to what is actually the difference between java and .net. Java easily presents user information, which .net gets confused. Perhaps due to their different ideologies and goals, java is designed as a normal virtual environment that runs on any os host where .net is mainly designed with windows in mind.

.Net processes are not designed to work in an ambiguous vacuum; they run as component services or parts of iis, and they run on windows, so the virtual environment does not provide for remote monitoring, because you will get some degree of free from wmi.

Java does not work this way because java cannot make any assumptions about the underlying os or what information it will provide, and all that Java needs to do should be the same for all systems. Thus, Java provides a huge amount of data about its memory and thread activity for the user and provides an infrastructure for processing and detecting managed objects in user code (mbeans). Jconsole and jvisualvm allow you to remotely connect to the java process (locally or over a network with jmx, although jmx requires the flag to be active in the target Java process), and then they can see all this data and view all available MBeans. In addition, all this is basic functionality, and the programs are free.

.Net flat out does not have this. It’s actually a developer for creating remote control in your application code, and there is no convenient viewer that helps users find out which control objects even exist.

In addition, java code can be trivially changed back to the original one, reconstructed into a project, and then debugged with remote breakpoints against the production system. This is possible with .net, but they certainly do not make it easy.

+2
source

You viewed CLR Profiler for .NET Framework 2.0

Being a .NET person or trying to be - :) I'm not sure what exactly compares to jconsole, but you can profile things. There are other commercial tools that you can find on Google CLR Memory Profiler or .NET Profiler.

+1
source

All Articles