Was frisst in meinem Programm den Speicher / verschlechtert die Performance

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hi,
ich hab grad ein seltsames Problem mit meiner GUI. Hin und wieder passiert es, dass es zu ruckeln anfängt, zB wenn ich schnell ein paar Zeilen in meinem Table markiere (gedrückte Maustaste und drüberlaufen), dann hängt das manchmal stark hinterher.

Ich hab auch ne Funktion im Programm die mir den belegten Speicher anzeigt. Anfangs sind es immer 4,9 MB, aber dann wird daraus 6...12.. und ab 8 fängt es schon zu ruckeln an. Über 12 MB hab ich's bisher nicht bekommen, manchmal sinkt das auch wieder.

Nun durch Rumprobieren komm ich nicht dahinter.

Was ist ein einsteigerfreundliches Tool um herauszufinden welche Objekte denn den Speicher belegen, und vllt wann es größere Sprünge gibt, eben von 5 auf 12 MB zB.
Wenn's geht kein superkomplexes Megatool, sondern etwas "leichteres", denn ich hab mit sowas noch nie gearbeitet.

Vielen Dank!
 

hdi

Top Contributor
Danke, werd's mir mal ansehen. Mal kucken ob ich damit zurecht komme, ansonsten populiere ich weiterhin diesen Thread ;)
 

hdi

Top Contributor
Hm okay, also es scheint so zu sein: Sobald ich auf einen gewissen Button drücke, springt der Speicher um ca 3 MB nach oben. Beim Drücken auf den Button wird ein JDialog erstellt. Sehr simpel, ohne Inhalt, einfach nur ein leerer JDialog.

Ich glaube eher mein Problem ist nicht, dass das 3MB braucht, sondern das aus irgendeinem Grund mein Table lahm wird sobald mehr als ca 6-7 MB im Heap sind, kann das sein? Ich meine das ist ja keine große Zahl, oder?

... hat spontan jemand eine Idee? Ist das normal, dass JTables beim Rumpfuschen mit der Maus (also sehr schnelle Selektionswechsel der Zeilen) ruckeln, wenn der Heapspace größer als 6 MB ist ^^ Solange der ca 4 MB ist macht das nämlich keine Probleme...
 

Ark

Top Contributor
Zugegeben, ich kenne die Konzepte hinter Swing nicht (und auch nicht die Anforderungen an deine Implementierung), aber 6 MB (und auch schon 4 MB) klingen nach viel, sehr viel sogar.

Ark
 

hdi

Top Contributor
Also ich hab allein für die GUI-Symbole ca 30 png's geladen, und dann noch ca 200*100 px große JPEG bilder.. aber nur 5 stück oder so (wobei das Programm auch auf mehere hundert ausgelegt sein soll). Hm was kann's noch sein.. Hab halt recht viele Komponenten in der GUI, kA ob 5 MB normal sind.

edit: Hab grad nachgeprüft, die Bilder alle zusammen sind nur 100 kb, zumindest auf der Festplatte
 

Marco13

Top Contributor
edit: Hab grad nachgeprüft, die Bilder alle zusammen sind nur 100 kb, zumindest auf der Festplatte

DAS hat nun nichts zu sagen: In einem BufferedImage (oder ähnlichem) wird jeder Pixel (RGB(A)) als ein int gespeichert - also in 4 bytes, und bei 5 Bildern mit 100x200 macht das allein 400KB aus. Übrigens sind 5 MB IMHO nicht viel - es werden ja schon etliche Klassen geladen und so... also, das sollte IMHO kein Problem sein. Die obligatorische Frage ;) : Kannst du ein KSKB posten, wo das Problem auftritt?
Genauere Informationen über Objektallokationen liefert der Eclipse TPTP, aber eigentlich müßte man schon aus der VisualVM oder einem Kommandozeilen-Dump mehr Informationen rausziehen können...
 

hdi

Top Contributor
Das Thema hat sich erledigt. Ich weiss nicht genau woran es lag, könnte drüber nachdenken aber hab grad keine Lust. Fakt ist ich hab da ziemlich unperformanten Code geschrieben irgendwo. Wegen eines anderen Problems - bzw. dessen Lösung - ist es jetzt aber auch nicht mehr möglich so viele Selektionen in so kurzem Zeitraum zu machen, von daher tritt das nicht mehr auf.

PS: Ich hab jetzt stellenweise ca 20 MB im Heap liegen, aber es läuft prima. Also es war echt mein Fehler, und die Speichergröße scheint normal zu sein wenn man einige Images zur Laufzeit hat.
 
T

tuxedo

Gast
Kleine Anmerldung am Rande:

Hatte mal in ner Anwendung ne JTable mit 4 oder 5 Spalten und ca. 16.000 Zeilen. Da war Multiselection oder das anwenden eines Filters überhaupt kein Problem.

- Alex
 

javimka

Top Contributor
Du kannst dir ja auch gar nicht ganz sicher sein, dass wenn 5 MB Speicher für die JVM reserviert werden, dass die dann auch alle sofort gebraucht werden. Kann ja auch sein, dass automatisch ab gewissen Grenzen etwas mehr vom Betriebssystem gebettelt wird, als zu dem zeitpunkt nötig um etwas Spielraum zu haben.
 

hdi

Top Contributor
Es geht nicht um Multi oder Single Selection sondern darum mit gezogener Maustaste über den Table zu huschen und im SelectionListener auch auf valueIsAdjusting() zu reagieren. Also ca 50 mal pro Sekunde. Und pro Aufruf befülle ich ein JPanel mit Daten und einem Bild. Und irgendwo dort hab ich n Speicherleck. Aber da ich das jetzt eh deaktiviert hab lass ich das Leck mal lecken. Oder mich am Ar***. Also diesmal schieb ich die Schuld alleine mir in die Schuhe und nicht Swing lol :D
 

hdi

Top Contributor
Kann ja auch sein, dass automatisch ab gewissen Grenzen etwas mehr vom Betriebssystem gebettelt wird, als zu dem zeitpunkt nötig um etwas Spielraum zu haben.
Da hast du vollkommen Recht, das konnte ich mit dem Tool auch beobachten. Sobald der restliche freie Speicher auf einen gewissen Wert sinkt werden pauschal n paar MB (oder irgendein Prozentsatz) reserviert, auch wenn es noch nicht gebraucht wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Java Programm frisst RAM Allgemeine Java-Themen 6
javampir Deklarierung frisst Rechenzeit Allgemeine Java-Themen 20
R Programm frisst 'Virtuellen Speicher' wie PacMan Allgemeine Java-Themen 4
X Wer kann mir das hier erklären? Programm frisst RAM! Allgemeine Java-Themen 11
S Fehler bleiben - Java frisst sich ins System? Allgemeine Java-Themen 17
J in file schreiben frisst den speicher Allgemeine Java-Themen 5
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
A Frage zu meinem Code Allgemeine Java-Themen 2
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
D Schönheitsfehler in meinem Stapelverarbeitungsprogramm Allgemeine Java-Themen 13
X Probleme mit meinem Properties Allgemeine Java-Themen 9
Developer_X Brauche Hilfe bei meinem kleinen hilfsprogramm Allgemeine Java-Themen 4
Airwolf89 Wo ist der Fehler in meinem Programm? Allgemeine Java-Themen 4
T File runterladen mit meinem Applet? Allgemeine Java-Themen 4
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
D Was haltet ihr von meinem Quellcode - JConsole? Allgemeine Java-Themen 2
S Welche Javaversion ist in meinem Linux? Allgemeine Java-Themen 2
G Suche Programm PDF Maker Programm zum einbinden in meinem Allgemeine Java-Themen 8
D close Problem bei meinem eigenen ToolTip Allgemeine Java-Themen 2
E verstehe fehler bei meinem (kleinen) programm nicht Allgemeine Java-Themen 5
V Jar Files Auf meinem Handy Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
T Screenshot ohne meinem Programm Allgemeine Java-Themen 5
G Probleme mit Klassenmethoden in meinem Programm. Allgemeine Java-Themen 12
W probleme mit meinem programm Allgemeine Java-Themen 2
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
S meine java laufschrift funzt auf meinem NB teilweise schrott Allgemeine Java-Themen 2
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
N Programm startet nicht, nur per cmd Allgemeine Java-Themen 5
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
R Programm zur Rekursion Allgemeine Java-Themen 5
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
dereki2000 Programm veröffentlichen Allgemeine Java-Themen 14
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
kodela Programm hängt in der Ereigniswarteschlange Allgemeine Java-Themen 13
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
P Programm darf nicht mehrfach startbar sein Allgemeine Java-Themen 16
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
JavaNewbie2.0 Programm nicht im Taskmanager schliesen können Allgemeine Java-Themen 15
J XML Datei mit installiertem Programm öffnen Allgemeine Java-Themen 7
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
JavaNewbie2.0 Programm bleibt "stehen" Allgemeine Java-Themen 2
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20

Ähnliche Java Themen

Neue Themen


Oben