2016-06-26 12 views
1

Ich arbeite an einem Elektrokardiogramm mit CocosSharp 2D Lolipop 5.1 API22. Ich habe 332 Maßnahmen pro Sekunde. I Zeichnen Sie ein Polygon mit 6425 Linien 100 Mal pro Sekunde. Ich habe einen Out of Memory Error bei 82 Sekunden.Xamarin CocosSharp 2D CCDrawNode Speicherleck

verts ist ein 6425 CCPoint-Array.

X-Inkrement beträgt 0,1 pt. y zwischen 0 und 4500.

enter image description here

ich unter Visual Studio bin Entreprise 2015 Update 2

ich meine App mit Xamarin Android-Player teste

Gibt es ein Werkzeug, die ich verwenden könnte in Visual Studio, um mein Problem zu analysieren?

Ich lese viele Probleme von Memory Leak mit diesem Techno aber nie in CCDrawNode.

+0

Irgendeine Chance, dass Ihr Code irgendwo auf Github verfügbar ist, also konnten wir untersuchen/beitragen? –

Antwort

0

Xamarin Profiler ist für VS Enterprise Editionen und Xamarin Studio verfügbar.

Wenn die Zeilen nicht mehr auf dem Bildschirm angezeigt werden, müssen Sie die Knoten aus der Szene entfernen, um den Garbage Collector zu entfernen. Sie können die Knoten nicht einfach ausblenden. Sie müssen sie entfernen und sicherstellen, dass keine Referenzen auf sie vorhanden sind.

+0

Ich habe einen verschachtelten CCDRawNode in meine hinzugefügt, um das zu tun, was Sie vorschlagen. Es ist besser, dass der Speicher nach 240 Sekunden nicht mehr verfügbar ist. Ich brauche einen Befehl, um sicherzustellen, dass wirklich alles aus dem Speicher entfernt wird. Etwas wie ResetChildren ... –

+0

Sie können es aus der Szene entfernt haben, aber immer noch im Speicher sein. Hat irgendetwas noch einen Bezug darauf? Zum Beispiel ist es in C# Sammlung wie eine Liste enthalten? – jaybers

+0

In der Tat ist es nicht direkt zu der Szene hinzugefügt, seine encapulated innerhalb Multiples Knoten Szenen-> Slots [] -> MyChart-> Kinder-> DrawNode-> DrawableNode Ich zeichne Linien in DrawableNode –