2016-09-13 11 views
0

jdwp/socket経由でリモートデバッグを有効にしてJavaプロセスを起動し、外部プロセスが接続されていないと、パフォーマンスが低下します?リモートクライアントが実際にデバッグしているときに重大なヒットがあることを理解していますが、特定のポートでjdwpを宣言するだけでは、アプリケーション自体が遅くなりますか?ドキュメンテーションへのリンクは非常に高く評価されます。Javaリモートデバッグ - パフォーマンス

答えて

1

いいえデバッグポートを有効にするだけで、外部プロセスが接続されていない限り、実行時のパフォーマンスに影響しません。

JDWPは、デバッガとデバッグするJava仮想マシン(VM)間の通信に使用されるプロトコルです。 JDWPは(オプション)です。

JDWPスタートアップ - トランスポート接続が確立され、任意のパケットが送信される前に、ハンドシェイクは、接続の両側の間に発生した後:

ハンドシェイク処理は、次の手順があります

  1. デバッガ側は14バイトをVM側に送信します。これは文字列 "JDWP-Handshake"の14文字のASCII文字で構成されます。
  2. VM側が同じ14バイトで応答:JDWPハンドシェーク

のJava SE 1.4のJava HotSpot仮想マシンは、現在の以前のバージョンで

を「フルスピードデバッグ」を使用HotSpotは、デバッグが有効になっているときに、インタープリタのみを使用してプログラムを実行しました。これで、HotSpotテクノロジの完全なパフォーマンスの利点は、デバッグを有効にして実行されているプログラムで利用できます。改善されたパフォーマンスにより、長時間実行されるプログラムのデバッグが容易になります。

はJDWP機能強化に関する詳細については、http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html

を参照してください。また、テストはフルスピードで進行すると、デバッガの起動が例外で発生することができます