DarthShader
Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem mit meinem Programm:
Es handelt sich dabei um eine Anwendung, die eine Swing Oberfläche hat. Sie ist mittlerweile recht umfangreich. Manchmal (und diese zeitliche Eingrenzung kann ich leider nicht besser angeben) stockt das gesamte Programm in eine Intervall von ca. 2 Sekunden immer für ca. 1 Sekunde.
Das "fühlt" sich so an, als würde das gesamte Programm einfach ganz kurz "hängen" bzw. "nicht mehr reagieren", und das ca. alle 2 Sekunden. Man kann dies gut an der Verzögerund der Oberfläche erkennen. Interessant dabei ist (mögilcherweise ist dies eine wichtige Information), dass die Eingaben, z.B. ein Klick, nicht verschluckt werden wenn das Programm hängt, der Klick wird dann einfach ca. 1 Sekunde später ausgeführt.
Das Programm benutzt keine Threads (natürlich ein Main Thread, einen EDT), die da irgendwas blockieren könnten. Und selbst wenn, würden die ja nicht das gesamte Programm, vor allem die Oberfläche, anhalten. Möglicherweise stoppt auch der EDT immer kurz, das kann ich nicht genau sagen.
Manchmal denke ich auch, es liegt am Garbage Collector, als würde der genau alle 2 Sekunden versuchen, den Speicher aufzuräumen.
Meine Frage wäre nun, wie geht man nur an solch einen Fehler heran? Wo kann ich anfangen zu suchen? Gibt es Tools, die mir bei sowas helfen könnten, würde ein Profiler hier helfen?
Hat jemand vielleicht eine Idee, woran das allgemein liegen kann, gibt es bekannte "Stolpersteine" die solch einen Effekt auslösen könnten?
Ich bin Euch für jeden Tipp und jede Info dankbar
Vielen Dank für Eure Hilfe!
ich habe folgendes Problem mit meinem Programm:
Es handelt sich dabei um eine Anwendung, die eine Swing Oberfläche hat. Sie ist mittlerweile recht umfangreich. Manchmal (und diese zeitliche Eingrenzung kann ich leider nicht besser angeben) stockt das gesamte Programm in eine Intervall von ca. 2 Sekunden immer für ca. 1 Sekunde.
Das "fühlt" sich so an, als würde das gesamte Programm einfach ganz kurz "hängen" bzw. "nicht mehr reagieren", und das ca. alle 2 Sekunden. Man kann dies gut an der Verzögerund der Oberfläche erkennen. Interessant dabei ist (mögilcherweise ist dies eine wichtige Information), dass die Eingaben, z.B. ein Klick, nicht verschluckt werden wenn das Programm hängt, der Klick wird dann einfach ca. 1 Sekunde später ausgeführt.
Das Programm benutzt keine Threads (natürlich ein Main Thread, einen EDT), die da irgendwas blockieren könnten. Und selbst wenn, würden die ja nicht das gesamte Programm, vor allem die Oberfläche, anhalten. Möglicherweise stoppt auch der EDT immer kurz, das kann ich nicht genau sagen.
Manchmal denke ich auch, es liegt am Garbage Collector, als würde der genau alle 2 Sekunden versuchen, den Speicher aufzuräumen.
Meine Frage wäre nun, wie geht man nur an solch einen Fehler heran? Wo kann ich anfangen zu suchen? Gibt es Tools, die mir bei sowas helfen könnten, würde ein Profiler hier helfen?
Hat jemand vielleicht eine Idee, woran das allgemein liegen kann, gibt es bekannte "Stolpersteine" die solch einen Effekt auslösen könnten?
Ich bin Euch für jeden Tipp und jede Info dankbar
Vielen Dank für Eure Hilfe!