2010-12-01 9 views
4

あなたがリンクできるDLLを探しています。これにより、.Net appプロファイリング能力がjconsoleに相当します。具体的には、私が想像することは、このようなものです:jconsoleと同等の.Net?

  1. あなたは、あなたのプロジェクトにDLLを追加
  2. あなたは、いくつかのinitメソッド
  3. これは、エンドポイントのセットを公開し呼び出す(ウェブ、TCP、名前付きパイプ、何でも) 。
  4. これはアプリケーションのパフォーマンスを損なうものではありませんので、本番環境で実行することができます。
  5. 問題が発生した場合は、エンドポイントとプロファイルに接続します。あなたは、GCルーツ、メモリ(保持セット)、トリガGC、を見ることができます...

このようなものがありますか?

答えて

1

あなたは.NETの男であること、またはになろうとしCLR Profiler for the .NET Framework 2.0

見てきました - :)私は正確にjconsoleと比較わからないんだけど、あなたは物事をプロファイルすることができます。 「CLRメモリプロファイラ」や「.NETプロファイラ」でグーグル検索ができる他の商用ツールもあります。

2

OP: 本当にありません。

Simon: Jconsoleは、実際にjavaと.netの違いは何かの側面的な議論です。 Javaは、.netが難読化した情報をユーザに簡単に提示します。おそらく、その異なるイデオロギーと目標のために、javaは、.netが主にWindowsを念頭に置いて設計されている任意のホストOSで動作する共通の仮想環境になるように設計されています。

.Netプロセスはあいまいなバキュームで実行されるようには設計されていません。それらはコンポーネントサービスまたはiisの一部として実行され、ウィンドウ上で実行されるため、仮想環境ではリモートモニタリングを提供する規定はありません。これは、WMIからある程度の自由度を得るためです。

Javaはそのような仕組みではありません。javaは、基礎となるOSや提供される情報について何も仮定することができないため、すべてのシステムで同じようにjavaを実行する必要があります。そのため、javaはメモリとスレッドのアクティビティに関する膨大な量のデータをユーザに提供し、ユーザコード(mbean)の管理オブジェクトを処理して発見するためのインフラストラクチャを提供します。 Jconsoleとjvisualvmを使用すると、ユーザーはJavaプロセス(ローカルまたはjmxを使用してネットワーク経由でリモートに接続できますが、jmxではターゲットJavaプロセスでフラグをアクティブにする必要があります)を使用して、 mbeans。さらに、これはすべてコア機能であり、プログラムは無料です。

.Netフラットアウトにはこれがありません。開発者は、リモート管理をアプリケーションコードに組み込むことが非常に始まりました。ユーザーが管理オブジェクトが存在していることをユーザーが発見できる便利なビューアはありません。

さらに、Javaコードを元に戻してソースに戻し、プロジェクトに再構成してから、本番システムに対してリモートのブレークポイントでデバッグすることができます。それはネットでは可能ですが、簡単にすることはできません。

関連する問題