2010-02-10 2 views

Antwort

14

Zuerst beantworten Ihre Frage zu streng - zumindest im Titel angegeben - -Xdebug nur ermöglicht das Debuggen Unterstützung in der VM JVMDI in JVMs 5,0 vor der Verwendung. An sich ist es nicht viel. Darüber hinaus ist JVMDI deprecated since 5.0 für JVMTI:

- Xdebug
beginnen mit Unterstützung für JVMDI aktiviert. JVMDI ist veraltet und wird in J2SE 5.0 nicht zum Debuggen verwendet. Daher wird diese Option für das Debugging in J2SE 5.0 nicht benötigt.

So -Xdebug nichts tut mehr und der wichtige Teil:

-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]... 

oder mit Java Start 5.0, die neuere (die Sie als JDWP Mittel in 5,0 vorziehen sollte verwendet die JVM TI-Schnittstelle an die VM anstatt die ältere JVMDI-Schnittstelle):

--agentlib:jdwp=<name1>[=<value1>],<name2>[=<value2>]... 

Nun, mein Wissen, nur loading the jwdp agent und/oder die Konfiguration der JVM für eine Socket-Verbindung auf einem bestimmten p zu hören oder haben keine spürbaren Auswirkungen auf die Leistung. Aber verbindet einen Debugger.

+1

Sogar das Laden des JWDP-Agenten, ohne einen Debugger anzuhängen [kann eine Leistungseinbuße zur Folge haben] (http://developer.amd.com/resources/documentation-articles/article-whitepapers/java-performance-when-debugging-is-enabled/). – nodmonkey

0

Nein, die einfache Aktivierung des Debugging-Ports hat keine Auswirkungen auf die Laufzeitleistung. Zumindest habe ich noch nie etwas bemerkt.

..

+0

, dass er fragt nicht die Frage ist, er spricht über die JVM mit Debug-Optionen –

+0

@Valentin starten - nicht wahr?Was? Bitte erläutern Sie, warum die Befehlszeilen einen Debug-Port nicht aktivieren und somit die Abfrage beantworten. – Egwor

+0

ok, scheint, als hätte ich einen plötzlichen Fall von "Scheiße in meinen Augen" ... @ jarnbjo: Könnten Sie einfach eine void edit zu Ihrer Antwort machen, damit ich meinen Downvote entfernen kann? –

8

Performance-Testergebnisse bei AMD zeigen, dass einfach ermöglicht, den Debug-Agenten über die JVM Command tut Leistungsverschlechterung verursacht unabhängig einen Debugger von mit ihm verbunden ist, und dass der Abbau kann sehr groß sein, je nach Auslastung:

Beachten Sie, dass wir nicht wirklich einen Debugger angebracht wurden, als wir Messung der Leistung waren, so hatten wir diese agentlib angenommen Option erfolgsneutral in diesem Einsatzszenario wäre. Als wir diese Option entfernten, verbesserte sich sowohl die CPU-Auslastung als auch die Leistung dieser Workload (gemessen in Anfragen pro Sekunde) dramatisch.

Siehe ihren Bericht:

http://developer.amd.com/resources/documentation-articles/articles-whitepapers/java-performance-when-debugging-is-enabled/

+0

Wenn der JVM-Prozess lange (einige Tage/Wochen) ausgeführt wird, ist die Verlangsamung definitiv sichtbar. Mein Kontext: GWT-Anwendung mit Oracle Backend, Java 7 auf Solaris Zone. –

+0

Der AMD-Artikel ist aus dem Netz gefallen, kann aber immer noch in der Wayback-Maschine gefunden werden: https://web.archive.org/web/20160316201129/http://developer.amd.com/resources/documentation-articles/articles-whitepapers/java-performance-wenn-debuggen-is-enabled / – tul

Verwandte Themen