Auf Thema antworten

Hallo Leute...


Habe ein kleines Problem mit dem Arbeitsspeicher meines Programms.


Es läuft recht flüssig nur taucht momentan bei einigen Nutzern meines Programms folgender Fehler auf:


[code=Java]java.lang.OutOfMemoryError: Java heap space

at java.util.PriorityQueue.<init>(Unknown Source)

at angriffe.AngriffsverwaltungDorf.<init>(AngriffsverwaltungDorf.java:20)

at dorf.Dorf.<init>(Dorf.java:32)

at dorf.DorfManager.updateDoerfer(DorfManager.java:119)

at aufgaben.Executer.initDoerfer(Executer.java:123)

at aufgaben.Executer.doAufgabe(Executer.java:57)

at aufgaben.Executer.nextAufgabe(Executer.java:35)

at account.Account.action(Account.java:78)

at account.Accountverwaltung.doActions(Accountverwaltung.java:140)

at engine.ProgrammLoop.aktionen(ProgrammLoop.java:95)

at engine.ProgrammLoop.update(ProgrammLoop.java:77)

at engine.ProgrammLoop.run(ProgrammLoop.java:60)

at java.lang.Thread.run(Unknown Source)[/code]


Die dazugehörige Methode (Konstruktor) ist folgende:


[code=Java]public AngriffsverwaltungDorf(Account account, Dorf dorf) {

        this.account = account;

        this.dorf = dorf;

        CompAngriffe comp = new CompAngriffe();

        eigeneBefehle = new PriorityQueue<Angriff>(1000000,comp);

    }[/code]



Der Fehler ist offensichtlich: Zu wenig Arbeitsspeicher den die JRE bereitstellt. Aber wie reagiere ich auf so einen Fehler? Ist es irgendwie möglich meinem Programm mehr Arbeitsspeicher zur Verfügung zu stellen?


Ich habe auch die RAM Werte des Programms bei den Nutzern auslesen lassen. Hier die Werte und wie ich sie bekommen habe:


RAM Total: 259522560

RAM Frei: 3448

RAM Aktuell: 259519208


[code=Java]String memoryTotal = String.valueOf(rt.totalMemory());

        String memoryFree = String.valueOf(rt.freeMemory());

        String memoryNow = String.valueOf(rt.totalMemory() - rt.freeMemory());[/code]


Hoffe auf Hilfe!

Ocean15



Oben