2010-12-01 4 views
4

Je suis à la recherche d'une DLL que vous pourriez lier à, ce qui donnera à vos capacités de profilage de l'application .Net l'équivalent de jconsole. Plus précisément, ce que j'imagine quelque chose comme ceci:jconsole équivalent pour .Net?

  1. Vous ajoutez une DLL à votre projet
  2. Vous appelez un init
  3. Ceci expose un ensemble de points d'extrémité (Web, TCP, canaux nommés, peu importe) .
  4. Cela n'entrave pas les performances de votre application, vous pouvez donc l'utiliser en production.
  5. En cas de problème, vous vous connectez aux terminaux et au profil. Vous pouvez voir les racines GC, ce qui prend de la mémoire (jeux conservés), déclencher GC, ...

Y at-il quelque chose comme ça?

Répondre

1

Avez-vous regardé la CLR Profiler for the .NET Framework 2.0

Être un homme .NET, ou essayer d'être - :) Je ne sais pas exactement compare avec jconsole, mais vous pouvez profiler les choses. Il existe d'autres outils commerciaux que vous pouvez trouver sur Google "Profileur de mémoire CLR" ou "Profileur .NET".

2

OP: Il n'y en a vraiment pas. Jconsole est un argument parallèle à ce qui est vraiment la différence entre Java et .net. Java présente facilement à l'utilisateur les informations que .net masque. Peut-être en raison de leurs idéologies et objectifs différents, java est conçu pour être un environnement virtuel commun qui fonctionne sur n'importe quel hôte où .net est principalement conçu avec des fenêtres en tête.

Les processus Net ne sont pas conçus pour fonctionner dans un vide ambigu; ils fonctionnent en tant que services de composants ou parties d'iis, et ils s'exécutent sur des fenêtres, de sorte que l'environnement virtuel ne prévoit pas de surveillance à distance, car vous en obtiendrez un certain degré sans wmi. Java ne fonctionne pas de cette façon, car Java ne peut faire aucune supposition sur l'os sous-jacent ni sur les informations qu'il fournira, et tout ce que java doit faire est égal pour tous les systèmes. Ainsi, java offre une énorme quantité de données sur l'activité de la mémoire et des threads à l'utilisateur, et fournit une infrastructure pour la gestion et la découverte des objets gérés dans le code utilisateur (mbeans). Jconsole et jvisualvm permettent à l'utilisateur de se connecter à distance à un processus java (localement ou sur un réseau avec jmx, bien que jmx nécessite un indicateur pour être actif sur le processus java cible), puis ils peuvent voir toutes ces données mbeans. En plus de cela, tout cela est une fonctionnalité de base et les programmes sont gratuits.

.Net à fond plat n'a rien de tout cela. C'est au développeur dès le début de construire la gestion à distance dans leur code d'application, et il n'y a pas de visionneuse pratique qui aide les utilisateurs à découvrir ce que les objets de gestion existent même. En outre, le code java peut être trivialement retourné à la source, reconstitué dans un projet, puis débogué avec des points d'arrêt distants par rapport à un système de production. Cela est possible avec .net mais ils ne le rendent pas facile à faire.