OutOfMemoryError



  • huhu ihrs,
    ich hab ein java3D Programm, dass einen Würfel representiert und in ihm paar Bälle rumfliegen.

    Wenn ich nun die Anzahl der Bälle auf z.B 1000 stelle und den Frame maximiert anzeige,
    kommt irgendwann ein OutOfMemoryError, nach ca. 10 Minuten oder so.

    Wenn ich den Frame aber minimiere kommt der OutOfMemoryError schon nach 2 Minuten.

    Wieso tritt er bei minimiertem Frame viel früher auf ??

    PS.: Wenn ich den Taskmanager beobachte steigt die Speicherauslastung beim minimieren sofort an.

    thx schonmal für Antworten 🙂


  • Mod

    Vermutung:

    1. Du hast irgendwo ein Speicherleck. Nicht im klassischen Sinn, dass Du irgendeinen Speicherbereich nicht freigibst, sondern so, dass Du in irgendeiner Datenstruktur Referenzen auf Objekte behältst, die Du möglicherweise nicht mehr brauchst.

    2. Das Zeichnen kostet Zeit. Wenn Du nicht zeichnen musst, läuft der Rest Deines Programms also schneller ab. Im minimierten Zustand kann Dein Programm also die ganze Zeit damit verbringen, den Speicher vollzumüllen und muss nicht andauernd diese lästigen Zeichenprozeduren durchlaufen.



  • thx Gregor,
    ich gehe stark davon aus dass es deine 2. Vermutung ist.

    danke dir 🙂



  • Ich würde sagen 1 und 2.


Anmelden zum Antworten