リモート デバッグの追加のオーバーヘッドが気になります。次のパラメーターを指定して、HotSpot を使用してアプリケーションを開始します。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
はるかに古いバージョンの HotSpot でパフォーマンスに大きな影響があると聞きましたが、私のアプリケーションは現在 Java 8 を使用しており、最新の情報を見つけることができません。
リモート デバッグの追加のオーバーヘッドが気になります。次のパラメーターを指定して、HotSpot を使用してアプリケーションを開始します。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
はるかに古いバージョンの HotSpot でパフォーマンスに大きな影響があると聞きましたが、私のアプリケーションは現在 Java 8 を使用しており、最新の情報を見つけることができません。
1.4.0 では「フル スピード デバッグ」が導入されました。以前のバージョンの HotSpot (1.4.0 より前) では、デバッグが有効になっていると、プログラムはインタープリターのみを使用して実行されました。1.4.0 から、HotSpot テクノロジの完全なパフォーマンスの利点は、デバッグを有効にして実行するプログラムで利用できました。パフォーマンスの向上により、長時間実行されるプログラムをより簡単にデバッグできます。
1.4.1 以降、JPDA 領域でオラクルが言及したパフォーマンス関連の機能強化はありません。最後の 1 つは、JDK 1.4.1 の Java ホットスポット クライアント VM と Java ホットスポット サーバー VM に対して JDK 1.4.0 で行われました。
したがって、1.4.1 から最新バージョンまでのデバッグ領域では、パフォーマンスの向上は期待できなかったと言っても過言ではありません。そうでなければ、オラクルのドキュメントで言及されていたでしょう。
ソース: https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/
確認するには、上記のリンクの拡張セクションの下にあるリンクを参照してください。
AMD のこの記事は、これがどの程度のパフォーマンス低下を引き起こすかを知るのに役立ちます。Hotspot JVM でのリモート デバッグによって引き起こされるパフォーマンスへの影響を軽減するために、AMD はいくつかの調整も行っています。
また、これらの変更を適用して、OpenJDK の Hotspot JVM のパフォーマンスを改善する方法についても説明します。これは、デバッグが有効になっているが、デバッガがまだアタッチされていない状態で開始された場合です。