Arbeitsspeicher wird langsam voll

Diskutiere Arbeitsspeicher wird langsam voll im Allgemeine Java-Themen Forum; Hallo, ich programmiere in Eclipse mit Java. Heute ist mir einmal passiert, dass das Betriebssystem mir dazu geraten hat, Eclipse zu schließen,...

  1. kjg101
    kjg101 Neues Mitglied
    Hallo,

    ich programmiere in Eclipse mit Java. Heute ist mir einmal passiert, dass das Betriebssystem mir dazu geraten hat, Eclipse zu schließen, da Java zu viel Arbeitsspeicher verbraucht.

    Ich hatte ein Programm oft hintereinander getestet. Mit jedem Durchlauf wurde der freie Arbeitsspeicher weniger. Hat jemand eine Idee, woran das liegen könnte?

    Insgesamt hat übrigens mein Computer genug Arbeitsspeicher (8 GB). Mit jedem Programmdurchlauf (nach c.a. 300ms ohne Fehler beendet) sinkt der freie Arbeitsspeicher um c.a. 200MB.

    Danke im Voraus!
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. VfL_Freak
    VfL_Freak Bekanntes Mitglied
    Moin,
    Ohne Infos eher nicht :rolleyes:

    Das Problem selbst nennt sich "Speicherleck" (oder "Memoryleak"), google mal danach :)

    Gruß Klaus
     
  4. SeriousD0nkey
    SeriousD0nkey Mitglied
    Sicher, dass der Programmdurchlauf wirklich beendet wird? Oder startest du den Prozess vielleicht mehrmals? Ansonsten haben wir, wie Vfl_Freak bereits schrieb, zu wenig Infos was bspw. dein Programm macht.
     
  5. kjg101
    kjg101 Neues Mitglied
    Hallo,

    danke schon mal für die Antworten. Das ganze Programm ist zu lang, um es hier reinzustellen. Hier aber mal ein paar relevante Auszüge:

    Code (Java):

    import java.util.ArrayList;
    import ij.IJ;
    import ij.ImagePlus;
    import ij.WindowManager;

    static double[][] averagePixels;
    static double[][] covarianceMatrix;
    static double[] x0;
    static double[] x1;
    static int d, Nx, Ny, N;
    ...
    public static void main(String[] args)
    {
         IJ.open();
         ImagePlus img = WindowManager.getCurrentImage();
         final long timeStart = System.currentTimeMillis();
         ArrayList<ImagePlus> images = new ArrayList<ImagePlus>();
         images.add(img);
         calculateAveragePixels(images);
         calculateCovarianceMatrix();
       
         final long timeEnd = System.currentTimeMillis();
         System.out.println("Finished ("+(timeEnd-timeStart)+"ms)");
    }
     
    Ausgabe: Finished (83ms).

    Das Programm arbeitet mit Bildern, also mit größeren Datenmengen. Dazu nutze ich u.a. auch die Bibliothek ImageJ. In der main-Funktion werden verschiedene Funktionen aufgerufen, die Algorithmen implementieren und die anfangs leeren globalen Variablen initialisieren/verwenden. Mich wundert es auch nicht, dass während der Laufzeit eine Menge Arbeitsspeicher benötigt wird. Mich wundert es nur, dass er nicht wieder freigegeben wird (bzw. erst wenn ich Eclipse schließe).
     
  6. Joose
    Joose Super-Moderator Mitarbeiter
    Werden von deinen Programm weitere Threads gestartet (oder vielleicht startet eine Bibliothekt die du verwendest welche)? Wenn ja werden diese korrekt beendet?
     
  7. JStein52
    JStein52 Bekanntes Mitglied
    Einfach nach dem "Beenden" deines Programmes mal im Taskmanager nachsehen wieviele java.exe denn nun laufen ?!
     
  8. kjg101
    kjg101 Neues Mitglied
    Es wird tatsächlich bei jedem Start des Programms ein neuer Prozess java.exe gestartet, und es liegt an der Bibliothek ImageJ, die am Ende des Programmes noch offen ist. Danke für eure Hilfe. Dann weiß ich, wonach ich schauen muss.
     
    JStein52 gefällt das.
Die Seite wird geladen...

Arbeitsspeicher wird langsam voll - Ähnliche Themen

Lastet dieser Code den Arbeitsspeicher eines Handys aus?
Lastet dieser Code den Arbeitsspeicher eines Handys aus? im Forum Java Basics - Anfänger-Themen
Größe eines Objekts im Arbeitsspeicher
Größe eines Objekts im Arbeitsspeicher im Forum Allgemeine Java-Themen
Arbeitsspeicher auf Festplatte auslagern
Arbeitsspeicher auf Festplatte auslagern im Forum Allgemeine Java-Themen
Makierter Text in Arbeitsspeicher
Makierter Text in Arbeitsspeicher im Forum Allgemeine Java-Themen
Tomcat-Cluster und Arbeitsspeicher
Tomcat-Cluster und Arbeitsspeicher im Forum Server einrichten und konfigurieren
Thema: Arbeitsspeicher wird langsam voll