Reccourcenproblem

Status
Nicht offen für weitere Antworten.
D

daggit

Gast
Hi,

habe folgendes Problem. Und zwar habe ich mir ein kleines spiel in Java gebastelt. Die bewegungen von der Spielfigut wird uber einen timer gesteuert.. eine funktion wird also alle X millisekunden aufgerufen. In dieser funktion werden dann neue Bitmap objekte gesetzt und oder welche entfernt. Klappt eigentlich ach alles, problem ist nur das während man spielt manchmal alles kurz einfriert und dann normal weiterläuft. Ich denke mal das während dessen der Garbage-Collector die nicht mehr benötigten objecte wegwirft. Kann man da was machen? evtl. den Gabage-collector sagen das er erst nach spielende wieder alles löschen darf damit solche verzögerungen nicht auftreten?
 

Redfrettchen

Bekanntes Mitglied
Hi,
vllt hilft es, die Bitmaps in einem Cache zu verwalten, d.h. sie per HashMap mit einem String als Schlüssel zu speichern und sie durch diesen Schlüssel deinem Hauptprogramm zur Verfügung zu stellen. Damit werden die Objekte nicht gelöscht, weil immer noch eine Referenz (die in der Cache-HashMap) darauf zeigt. Am Ende oder zwischendurch solltest/kannst du diesen Cache natürlich auch leeren.
 

Jockel

Top Contributor
Warum erzeugst du die Bitmap-Objekte nicht einmal ganz am Anfang und verwendest sie dann immer wieder?
 

Redfrettchen

Bekanntes Mitglied
Das meinte ich mit meinem Cache, bloß dass die Bildern nicht unbedingt am Anfang erzeugt werden sollten (vorausgesetzt sie sind nicht zu groß).
 
D

daggit

Gast
werde es gleich mal ausprobieren.
Bin mir momentan aber garnicht mehr so sicher obs daran liegt. Mein Bildschirm besteht aus einem Layout-MAnager dem die Bitmaps zugewiesen werden. Nun kommts zu sehr starken performanceeinbussen wenn viele Bitmap-Objekte vorhanden sind. Imrinzip mach ich aber nach erzeugung mit den objekten nix mehr... allerdings glaube ich das jedesmal wenn ein bitmap gelöscht oder erzeugt wird das dann automatisch irgendwo nocheinmal alle vorhandenen Bitmaps durchlaufen werden... wodurch der Timer dann natürlich immer langsamer wird....hab nur keine idee ob man das abschalten kann -_-.... werde aber erstmal das andere ausprobieren :)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben