ProfilProfil
 Registrieren
 Login
Bild der WocheBild der Woche

(von Backslider)
Kommentare (0)
****

Weitere
User onlineBenutzer online
Gäste online: 9
Mitglieder online: Keine
Registrierte Mitglieder: 2117
Neustes Mitglied: vitapen

Resourcen freigeben!?

Neue Antwort erstellen
 

 

Autor Nachricht
 
 
XPlay
Neuling


Anmeldedatum: 03.12.2011
Beiträge: 9

Antworten mit Zitat
BeitragVerfasst am: 06.05.2012, 12:33    Titel: Resourcen freigeben!?

Hallo,

Ich habe ein Problem mit dem Resource managment von XNA. Entweder ich verstehe die arbeitsweise nicht so richtig oder ich mache etwas falsch.
Folgendes Problem, in meinem Spiel werden keine Resourcen freigeben obwohl ich dies tuhe. Sprich, wenn der Intro Screen vorbei ist, bleiben alle Resourcen vom Intro screen (Bilder, sounds) weiterhin im speicher und belegen Ram. Auf dem PC mag das nicht so schlimm sein aber auf windows Phone hab ich so sehr schnell 90 mb voll.

Ich benutze für jeden Screen ein eigenen Content Manager sowie eine eigene Spritebatch so das ich unabhänig vom eigentlichen Spiel die resourcen für jeden Screen seperat freigeben kann.
Meine Unload methode sieht folgendermassen aus:
Code:

            content.Unload();
            content.Dispose();
            spriteBatch.Dispose();
            GC.Collect();

Jedoch passiert überhaupt nichts nachdem ich diese Methode ausführe. Der belegte Ram speicher bleibt weiterhin unverändert. Gibt es noch was zu beachten in XNA um resourcen freizugeben? Wäre für hilfe sehr dankbar.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Kevin
Member


Anmeldedatum: 24.10.2008
Beiträge: 882
Wohnort: Karlsruhe

Antworten mit Zitat
BeitragVerfasst am: 10.05.2012, 22:38    Titel:

Soweit ich weiß ist es in C# nicht möglich den Garbage Collector zu zwingen aufzuräumen. Außerdem kann es natürlich sein, dass XNA bzw. C# intern vorsorglich Speicher reserviert und es bei Programmende wieder freigibt.

MSDN: GC.Collect hat Folgendes geschrieben:
Mit dieser Methode kann versucht werden, den gesamten Speicher freizugeben, auf den nicht zugegriffen werden kann. Allerdings garantiert die Collect-Methode nicht, dass der gesamte Speicher freigegeben wird, auf den nicht zugegriffen werden kann.

Alle Objekte werden für eine Garbage Collection berücksichtigt, unabhängig davon, wie lange sie sich bereits im Speicher befinden. Objekte, auf die in verwaltetem Code verwiesen wird, werden jedoch nicht freigegeben. Mit dieser Methode wird das System gezwungen, so viel Speicher wie möglich freizugeben.

_________________
Mein Youtube Kanal
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Beiträge der letzten Zeit anzeigen:   
 
Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de