2016-02-08 20 views
6

Mi chiedo solo un ulteriore sovraccarico del debug remoto. Comincio applicazione che utilizza HotSpot con questi parametri:Overhead di debug remoto Java

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 

Ho sentito parlare di grande impatto sulle prestazioni nelle versioni più vecchie di HotSpot ma la mia applicazione utilizza Java 8 ora e non riesco a trovare alcuna informazioni aggiornate su di esso.

+0

In effetti, c'è un enorme sovraccarico di debug remoto (oltre 30 secondi su un passaggio in/su), a meno che non si usi SAP JVM su HCP (hanno un servizio di debug speciale) - è quasi come se si eseguisse il debug localmente. Puoi provarlo su hanatrial.ondemand.com –

+0

@SvetlinZarev è questa abilitazione di sovraccarico solo quando qualcuno si connette a jvm e avvia il debug o rimane tutto il tempo mentre agentlib è collegato? –

+0

Oh, ho frainteso la tua domanda. –

risposta

6

1.4.0 introdotto "Debug Full Speed": Nella versione precedente di HotSpot (prima della 1.4.0), quando il debug è stato attivato, il programma eseguito utilizzando solo l'interprete. Dalla versione 1.4.0, il vantaggio completo delle prestazioni della tecnologia HotSpot era disponibile per i programmi in esecuzione con il debug abilitato. Le prestazioni migliorate consentono di eseguire più facilmente il debug dei programmi a esecuzione prolungata.

Dopo 1.4.1 non ci sono miglioramenti relativi alle prestazioni menzionati da Oracle nell'area JPDA. L'ultimo è stato eseguito in JDK 1.4.0 per la VM client hotspot Java e per Java Hotspot Server VM in JDK 1.4.1.

Quindi è sicuro dire che non ci si può aspettare un miglioramento delle prestazioni nell'area di debug dalla versione 1.4.1 alla versione più recente. Altrimenti sarebbe stato menzionato dai documenti di Oracle.

Fonti: https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/

prega di passare attraverso i link nella sezione valorizzazione del link qui sopra per confermare.

+0

perfetto, grazie. –

0

Questo articolo da AMD vi aiuterà a trovare la quantità di degrado delle prestazioni sarà questa causa, hanno anche fatto alcune modifiche per ridurre il calo di prestazioni causati da debug remoto su un Hotspot JVM, e cito:

" Mostreremo anche come abbiamo applicato queste modifiche per migliorare le prestazioni della JVM di Hotspot in OpenJDK quando viene avviato con il debug abilitato ma il debugger non è ancora collegato. "

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

+0

Questo articolo è stato scritto nel 2010. Era il momento di java 6. Sei sicuro che sia ancora aggiornato? –