Monogame Startup Memory Spike

7

Ich portiere derzeit ein Spiel von WP7 mit XNA auf WP8.1 mit MonoGame. Ich habe erhebliche Anstrengungen unternommen, um mein Spiel so zu optimieren, dass es unter der Speichergrenze von 185 MB für Telefone mit wenig Speicher liegt.

Ich machte Fortschritte, bis ich beim Start einen Speicheranstieg entdeckte. Ich habe die Qualität meiner Assets weiter reduziert, bis die Speichernutzung (während das Spiel läuft) bei etwa 140 MB liegt. Beim Start steigt die Speichernutzung jedoch auf 205 MB an, bleibt dort etwa 10 Sekunden lang und fällt dann auf die normale Speichernutzung zurück. Das macht es jedes Mal. Durch Erhöhen oder Verringern der Asset-Größe wird nur die Höhe der Spitze und die Verwendung im Allgemeinen geändert, die Verzögerung von 10 Sekunden wird jedoch überhaupt nicht geändert.

Eine Idee, über die ich nachdachte, war, den Benutzer mit einem längeren Begrüßungsbildschirm zu verzögern, damit ich Zeit habe, alle Assets zu laden, ohne die Luke zu öffnen. Dies scheint mir jedoch aus Bequemlichkeitsgründen die Benutzererfahrung zu beeinträchtigen.

Irgendwelche Ideen? Hat jemand anderes dieses Problem gehabt?

Ramsay Smith
quelle
Ich glaube nicht, dass wir dies angesichts der bereitgestellten Informationen beantworten können, abgesehen davon, dass wir Ihren Gedanken auf einem Begrüßungsbildschirm zustimmen. Nebenbei bemerkt, wie Sie vielleicht bereits wissen, ist XNA veraltet (und MonoGame ist nur ein Framework, das XNA verwendet).
Evorlor
2
Vielleicht hätte ich klarer sein sollen: Ich frage mich, ob dies für ALLE MonoGame-Spiele normal ist (etwas im Quellcode von Monogame) oder nicht (etwas in meinem Code irgendwo).
Ramsay Smith
1
Können Sie versuchen, keine Sounds zu laden und sehen, dass es eine kleinere Spitze gibt? Möglicherweise liegt es an einer Soundkonvertierung, die stattfindet, und dann benötigt der Garbage Collector einige Sekunden, um die entsorgten Objekte zu löschen.
dimitris93
@Evorlor MonoGame verwendet XNA in keiner Weise über die Neuimplementierung seiner Funktionalität hinaus.
JonBee

Antworten:

1
  • Versuchen Sie, Ihr Vermögen zu komprimieren
  • Laden Sie nur die notwendigen Dinge für die erste Szene (wie Hauptmenü)
  • Vermeiden Sie Stock Splash Screen und schreiben Sie Ihre eigenen. Also ich meine, lade beim Start nichts. Dann zB einen animierenden Begrüßungsbildschirm erstellen. Laden Sie Ihre Assets langsam, wenn der Begrüßungsbildschirm ausgeblendet wird.

Hoffe, einer von ihnen hilft

(Entschuldige mein schlechtes Englisch)

Ahmet Zambak
quelle