2010-02-10 11 views

Odpowiedz

14

pierwsze, ściśle odpowiedzieć na to pytanie - przynajmniej jak podano w tytule - -Xdebug tylko umożliwia obsługę debugowania w VM użyciu JVMDI w JVMs przed 5,0. Więc samo w sobie niewiele robi. Ponadto JVMDI jest deprecated since 5.0 na rzecz JVMTI:

- Xdebug
start ze wsparciem dla JVMDI włączone. JVMDI jest przestarzałe i nie jest używane do debugowania w J2SE 5.0, więc ta opcja nie jest potrzebna do debugowania w J2SE 5.0.

Więc -Xdebug nie robi nic więcej, a ważnym elementem jest:

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

lub rozpoczynając z Java 5.0, nowsze (które powinny wolisz jako środek JDWP w 5,0 używa interfejs JVM TI do VM zamiast starszy interfejs JVMDI):

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

teraz, o ile mi wiadomo, tylko loading the jwdp agent i/lub konfigurowanie JVM słuchać do połączenia gniazda na danym p lub nie ma zauważalnego wpływu na wydajność. Ale łączy się z debuggerem.

+1

Nawet ładowanie agenta jwdp bez dołączania debuggera [może mieć obniżenie wydajności] (http://developer.amd.com/resources/documentation-articles/articles-whitepapers/java-performance-when-debugging-is-enabled/). – nodmonkey

0

Nie, samo włączenie portu debugowania nie będzie miało żadnego wpływu na wydajność środowiska wykonawczego. Przynajmniej nigdy tego nie zauważyłem.

..

+0

że nie jest to kwestia prosi, on mówi o uruchomieniu JVM z opcji debugowania –

+0

@Valentin - co?Co? Wyjaśnij, dlaczego wiersze poleceń nie włączają portu debugowania, a zatem odpowiedz na zapytanie. – Egwor

+0

OK, wydaje mi się, że miałem nagły przypadek "gówno w moich oczach" ... @ jarnbjo: czy mógłbyś wprowadzić pustą zmianę do swojej odpowiedzi, więc mogę usunąć moje spadki? –

8

wyniki testów wydajności w AMD wynika, że ​​po prostu umożliwienie agenta debugowania za pomocą poleceń JVM robi spowodować pogorszenie wydajności niezależnie od konieczności debugera podłączony do niego, i że degradacja może być dość duża w zależności od obciążenia:

Należy zauważyć, że w rzeczywistości nie podłączaliśmy debugera, gdy byliśmy mierząc wydajność, więc przyjęliśmy, że opcja tego agenta będzie w tym scenariuszu użycia neutralna pod względem wydajności. Gdy usunęliśmy tę opcję , zarówno wykorzystanie procesora, jak i wydajność w tym zadaniu (mierzona w żądaniach obsługiwanych na sekundę) znacznie się poprawiły.

Zobacz swój raport:

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

+0

Gdy proces JVM trwa długo (kilka dni/tygodni), spowolnienie jest zdecydowanie widoczne. Mój kontekst: aplikacja GWT z zapleczem Oracle, Java 7 w systemie Solaris Zone. –

+0

Artykuł AMD został opublikowany w Internecie, ale można go znaleźć w komputerze powrotnym tutaj: https://web.archive.org/web/20160316201129/http://developer.amd.com/resources/documentation-articles/articles-whitepapers/java-performance-when-debugging-is-enabled / – tul

Powiązane problemy