Java Debugmodus ist unerträglich langsam!

Status
Nicht offen für weitere Antworten.
L

LooneyLynn

Gast
Hallo,

eins vorweg... Ich bin inzwischen in jeder Hinsicht überzeugt, dass Java von der Performance her sich nicht mehr vor C# oder C++ verstecken braucht. So viel dazu...

Mein Problem ist, dass meine Serveranwendung (eine Konsolenanwendung), unter Windows extrem langsam läuft, wenn ich sie aus einer IDE (ich nutze Netbeans 6.5) heraus starte. Dabei spielt es keine Rolle ob ich sie debugge oder einfach auf "Run" klicke. Führe ich die Anwendung hingegen über die Kommandozeile mit "java -jar ..." aus, läuft sie genauso schnell wie man es von Linux und MacOS gewohnt ist. Nur das bei den letzten beiden die Anwendung auch aus der IDE im Debugmodus so schnell läuft wie bei Windows von der Kommandozeile...

Da die Anwendung inzwischen ziemlich groß geworden ist und die Tests sehr viel Code aufrufen, ist es kein Zustand mehr... Ich muss das irgendwie hinkriegen, dass die Anwendung auch im Debugmodus unter Windows so schnell läuft wie sie es normalerweise tut! So als Richtwert würde ich sagen, dass sie MINDESTENS 10 mal langsamer in der IDE läuft... das kann echt nicht sein...!!!

Hat jemand eine Idee????

Danke im voraus... ???
 
L

LooneyLynn

Gast
Achso... Ich verwende "Windows Vista Ultimate 64-Bit" und "Java 6 Update 11", sowie "Netbeans 6.5"
 
L

LooneyLynn

Gast
Hmm da fällt mir ein, dass ja Visual Studio auch schon Probleme mit 64-Bit Debugging hatte... Liegt es vielleicht daran, dass 64-Bit Debugging unter Windows noch nicht so optimiert abläuft?? Oder vielleicht einfach ne versteckte Kommandozeilenoption die NetBeans dranhängt?! Aber ehrlichgesagt ist das für mich ein Rätzel...
 
L

LooneyLynn

Gast
Sorry, das ich noch mehr anfügen muss, aber die Erinnerungen kommen langsam wieder ;-). Ich hatte nämlich vor ein paar Jahren schonmal ein Spiel mit OpenGL in java programmiert und da war dasselbe Problem unter Windows XP 32-Bit. Also kann es daran wohl nicht liegen! Also entweder es liegt an Netbeans oder an Java selbst, dass es sich unter Windows nicht vernünftig debuggen lassen will...
 

Murray

Top Contributor
Wenn die Anwendung aus Netbeans gestartet auch bei "run" so langsam ist, dann kann es wohl nicht am Debug-Modus liegen. Vielleicht ist das ein Speicherproblem: entweder arbeitet die VM am Limit und muss daher ständig den Garbage-Collector anwerfen, oder die Kombination und Anwendung und IDE und ggfs. noch zusätzlich laufenden Anwendungen benötigt mehr Speicher phsyikalisch zur Verfügung stehen, so dass das OS ständig swappen muss. Was sagt denn der Winows-Taskmanager zu Speicher- und CPU-Belastung von netbeans.exe?
 
L

LooneyLynn

Gast
Nee damit hat das definitiv nix zu tun... Ich hab 4 GB Arbeitsspeicher und nen QuadCore. Das Serverprogramm läuft nachweislich einwandfrei auch mit 100 MB Heapgröße (hab ich durch limits in der Kommandozeile getestet) so schnell wie es soll.

Das ist ein reines CPU problem. Zum Beispiel als ich gestern die AES verschlüsselung für die interne Datenbank einprogrammiert hatte, ging überhaupt nix mehr im Debugmodus. Der braucht für nen paar KBs glatte 10 Millisekunden... Das kann überhaupt nicht sein. Und unter Linux schafft der locker 100 MB pro sekunde...

Also irgendwas stimmt da fundamental nicht... Die Quadcores sind durch das Serverpogramm fast völlig ausgelastet in der IDE (beim Debuggen) wohingegen sie in der Kommandozeile so gut wie keine Auslatung zeigen, bei zehnfacher Ausführgeschwindigkeit wohlgemerkt!
 
L

LooneyLynn

Gast
Wie gesagt, was mich verwirrt ist, das es letztens (vor ein paar Jahren) schon genauso war, mit nem ganz anderen PC, Windows XP, aber auch Netbeans...

Also kann ich eigentlich nicht der einzige sein der dieses Problem hat, es sei denn Java hat mich in sein Herz geschlossen!
 

Ariol

Top Contributor
Keine Ahnung woran das liegen könnte, aber klingt nach einem Problem mit Netbeans...

Hast du mal eine andere IDE getestet?
Netbeans neu installiert?

Hat Netbeans evtl ein Problem mit 64-bit?
 

byte

Top Contributor
Lösung:
1.) Netbeans deinstallieren
2.) vernünftige IDE installieren (IDEA, Eclipse)
:roll:
 
L

LooneyLynn

Gast
Es geht auf 32-Bit genausowenig... Damals hatte ich noch kein 64-Bit prozessor und es war das gleiche Problem.

Nee ich hab nur Netbeans getestet. Aber ich mein das müsste dann ja irgendwo gemeldet sein, weil ich kann schlecht der einzige sein der das Problem hat nur bei Google find ich nix!

Und wenn es andere IDEs schaffen, muss Netbeans das eigentlich auch können, weil die werden immerhin direkt von Sun unterstützt!

Unter Linux und MacOS nehm ich auch Netbeans und dort gehts einwandfrei...

Kann denn jemand bestätigen, dass bei ihm unter Netbeans und Windows, der Debugmodus genauso schnell ist wie die Ausführung von der Kommandozeile (ohne IDE)??? Vielleicht mit nem kleinen Testprogram, was irgendwie ne For-Schleife abarbeitet...
 
G

Gast

Gast
:-D Verschon mich bloß mit Eclipse *Brechreiz krieg*

Aber die IDEA hatte ich schonmal probiert, das war ganz niedlich eigentlich, nur halt kostenpflichtig... Werd die gleich mal installieren und dann werden wir sehen ob es an der IDE liegt ;-)...
 
V

Vayu

Gast
du hast nicht zufällig unter Windows noch irgendwo n bedingten breakpoint gesetzt, den du unter Linux nicht hast? :)

weil das macht das debuggen richtig übelst langsam.
 
L

LooneyLynn

Gast
@Vayu:

Wie meinst du das? Natürlich ist das Programm übersäht mit Breakpoints... Also solche die man an der Seite anklicken kann... Aber die werden in der Regel nich angesprungen, weil die meistens nur Fehler melden...

Und unter Linux hab ich die ja auch alle... Und dort geht es trotzdem so schnell...

Oder geht es nur unter Windoof deswegen so langsam?
 
V

Vayu

Gast
mit bedingten breakpoints meine ich solche, die nur angesprungen werden, wenn eine bestimmte vordefinierte bedingung gegeben ist.

unter eclipse kann man zum beispiel sagen

"Du Breakpoint hältst nur an wenn x > 0"

und solche dinger machen die programmausführung extremst langsam.

was das OS angeht, kA ich arbeite nur unter windows
 
L

LooneyLynn

Gast
Nee solche breakpoints hab ich nicht...

Allerdings ist mir trotzdem unklar wieso es dadurch langsamer gehen soll... Ist doch nur ne If-Anweisung mit nem "INT 3" im codepfad...

Gut aber ich probier grad das projekt mit IDEA zum laufen zu bekommen... dann kann ich vielleicht mehr sagen...
 

byte

Top Contributor
Vayu hat gesagt.:
"Du Breakpoint hältst nur an wenn x > 0"

und solche dinger machen die programmausführung extremst langsam.
Kann ich nicht bestätigen. Sind bei mir nicht merkbar langsamer als normale Line Breakpoints.

Was die Anwendung beim Debuggen grundsätzlich ausbremst, sind Method Breakpoints. Man sollte stattdessen immer Line Breakpoints benutzen!
 
V

Vayu

Gast
byto hat gesagt.:
Vayu hat gesagt.:
"Du Breakpoint hältst nur an wenn x > 0"

und solche dinger machen die programmausführung extremst langsam.
Kann ich nicht bestätigen. Sind bei mir nicht merkbar langsamer als normale Line Breakpoints.

Was die Anwendung beim Debuggen grundsätzlich ausbremst, sind Method Breakpoints. Man sollte stattdessen immer Line Breakpoints benutzen!

sind alles Erfahrungswerte :) Methodenbreakpoints sind bei mir wiederum nicht wirklich langsamer
 

byte

Top Contributor
Kommt beim Conditional Breakpoint halt drauf an, was Du da prüfst. Wenn Du irgendwelchen teuren String-Vergleiche machst und die dann 1000 mal aufgerufen werden, dann wirds natürlich langsamer. ;)
 
L

LooneyLynn

Gast
Seltsam...

Unter IntelliJ IDEA 8.0 scheint es zu funzen...

Dann müssen die bei NetBeans ja irgendwas falsch gemacht haben!
 
L

LooneyLynn

Gast
Die IDEA ist ja auch sonst viel schneller als netBeans... *denk* Schon beim Step-By-Step debugging... da ist irgendwie ein unterschied wie tag und nacht... :-D
 

Wildcard

Top Contributor
byto hat gesagt.:
Kommt beim Conditional Breakpoint halt drauf an, was Du da prüfst. Wenn Du irgendwelchen teuren String-Vergleiche machst und die dann 1000 mal aufgerufen werden, dann wirds natürlich langsamer. ;)
Bei mir sind Conditional Breakpoints auch bei einfachen Prüfung langsam (unter der Vorraussetzung das die Code Stelle häufig durchlaufen wird).
 

Ebenius

Top Contributor
Wildcard hat gesagt.:
byto hat gesagt.:
Kommt beim Conditional Breakpoint halt drauf an, was Du da prüfst. Wenn Du irgendwelchen teuren String-Vergleiche machst und die dann 1000 mal aufgerufen werden, dann wirds natürlich langsamer. ;)
Bei mir sind Conditional Breakpoints auch bei einfachen Prüfung langsam (unter der Vorraussetzung das die Code Stelle häufig durchlaufen wird).
Dem stimme ich zu. Das Teuere am Breakpoint ist doch das Suspend der VM. Und das muss gemacht werden, bevor die Bedingung geprüft wird. Die Komplexität der Bedingung ist quasi irrelevant.
 
V

Vayu

Gast
ich setze conditional bps eh nur ein wenn es ne stelle ist, die sehr oft durchlaufen wird ^^ weil wenn da nur ab und zu wer durchkommt, dann braucht man auch keinen conditional
 
G

Gast

Gast
Hmm der Sinn von so einem conditional breakpoint erschließt sich mir trotzdem nicht. Obwohl ich nicht wusste das es das überhaupt gibt, hab ich auch in meinem ganzen leben noch nie intuitiv gesagt "wenn man doch bloß dem breakpoint noch ne bedingung zuweisen könnte"...

aber egal...

Zurück zur NetBeans IDE; ich bleibt bei der, die gefällt mir am besten! Und das lustige ist, seitdem ich IDEA installiert hab, läuft NetBeans auch so schnell wie auf Linux.. Jetzt kapier ich gar nix mehr. Vielleicht weil es nicht wollte, das es durch IDEA ersetzt wird keine Ahnung!
 

Ebenius

Top Contributor
Anonymous hat gesagt.:
Hmm der Sinn von so einem conditional breakpoint erschließt sich mir trotzdem nicht. Obwohl ich nicht wusste das es das überhaupt gibt, hab ich auch in meinem ganzen leben noch nie intuitiv gesagt "wenn man doch bloß dem breakpoint noch ne bedingung zuweisen könnte"...

Das kann ziemlich schnell sinnvoll werden. Zum Beispiel, wenn Du einen Fehler hast, der immer in einer Methode auftritt, wenn Du einen bestimmten Wert übergibst (zum Beispiel jeden String der länger ist als 12 Zeichen). Wenn nun diese Methode sehr oft aufgerufen wird (meistens mit Strings die kürzer sind als 12 Zeichen), dann wird es zur Qual immer wieder "run" zu klicken, bis mal der Eingabewert im 25ten Lauf die Fehlerbedingung erfüllt. Dabei sind bedingungte Breakpoints ein echter Vorteil.

Ebenius
 
L

LooneyLynn

Gast
Oh... naja da hab ich dann einfach ne if anweisung vor den breakpoint geschrieben *denk*... na gut dann hab ich die wohl doch verwendet... aber das mit der if anweisung ist dann wohl anscheinend wesentlich schneller... :-D
 

Ebenius

Top Contributor
Anonymous hat gesagt.:
Oh... naja da hab ich dann einfach ne if anweisung vor den breakpoint geschrieben *denk*... na gut dann hab ich die wohl doch verwendet... aber das mit der if anweisung ist dann wohl anscheinend wesentlich schneller... :-D

Das stimmt. Aber was machst Du, wenn der Fehler in einer Bibliothek passiert die Du nicht verändern kannst?
 

Wildcard

Top Contributor
LooneyLynn hat gesagt.:
Oh... naja da hab ich dann einfach ne if anweisung vor den breakpoint geschrieben *denk*... na gut dann hab ich die wohl doch verwendet... aber das mit der if anweisung ist dann wohl anscheinend wesentlich schneller... :-D
Die Conditional Breakpoints sind da IMO eleganter. Du brauchst keinen Code zu ändern und musst daher hinterher auch keine Debug Artefakte rauswerfen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3
M Java Analyse/ SWOT-Analyse Allgemeine Java-Themen 13
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
E Java .exe Datei mit args starten Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben