Speicherverbrauch von BitmapImage / Bildsteuerung in Windows Phone 8

9

Ich teste gerade eine WP8-App, und der Bildbetrachter zeigt viele Bilder an. Ich habe festgestellt, dass der Speicherverbrauch der App ansteigt, und ich möchte herausfinden, wie ich sie lösen kann.

Ich habe einige Artikel aus dem Web gelesen, aber die von diesen Artikeln bereitgestellten Lösungen funktionieren nicht in meiner App. Bitte lesen Sie den folgenden Verlauf.

Zuerst habe ich den Artikel " Image Tipps für Windows Phone 7 " und laden Sie das Beispiel herunter, um den Image-Cache-Test zu säubern. Es funktioniert mit 1 image .

Und dann teste ich diese App zu Testzwecken mit 15 Offline-Bildern in der App und setze sie als "Inhalt". Bitte laden Sie die Test-App von hier .

Meine Testschritte sind:

%Vor%

Wenn ich meine App teste, erhöht sich der Speicher wie 16.02MB = & gt; Zeigen (19.32MB) = & gt; Löschen ( 16.15 MB ) = & gt; Zeigen (20.18MB) = & gt; Löschen ( 17.03MB ) ... usw. Und der Speicher wird nicht freigegeben, selbst wenn die Caching-Seite verlassen wird und die Caching-Seite erneut aufgerufen wird. Es scheint die Lösung des Artikels " Image Tipps für Windows Phone 7 "funktioniert nur für 1 Bild .

Hier kommt der xaml und Code-Behind der Lösung von " Bildtipps für Windows Phone 7 ".

[Caching.xaml]

%Vor%

[Caching.xaml.cs]

%Vor%

Ich habe auch versucht, andere Lösungen zu suchen, einige Testergebnisse sind wie folgt.

(1) Artikel " [wpdev] Memory leak with BitmapImage ": Es bietet 2 Lösungen, eine ist DisposeImage API, eine andere ist BitmapImage Quelle auf Null wie folgt zu setzen. Auch der Artikel ließ uns wissen, dass wir vorsichtig sein müssen bei Event-Handler-Attach / Dettach, aber meine Test-App hat keinen Event-Handler in Caching-Seite.

[DisposeImage]

%Vor%

[Null festlegen]

%Vor%

(2) Artikel " Windows Phone: Listbox mit Bildern aus of-memory ": Es bietet eine API" DisposeImage "mit wenig Unterschied zu (1) wie unten, aber das funktioniert auch nicht, ich habe immer noch das Speichererhöhungssymptom.

%Vor%

(3) Artikel " Kann das Speicherleck nicht finden " : Es bietet die gleichen 2 Lösungen wie oben erwähnt, auch erwähnt das Problem nicht für isolierte Speicher Bilder repro, aber meine Test-App Bilder sind von isolierten Speicher.

(4) Ich habe auch für 1000 Bilder versucht, das Testergebnis ist App-Absturz, wenn die App rund 190 Bilder sequenziell zeigte, bitte beachten Sie die Windows Phone Application Analysis Graphics für den Speicher unten.

Endlich, vielen Dank für Ihre Geduld, meine Frage und Geschichte zu lesen, ich habe daran gearbeitet, um eine Lösung für viele Tage zu finden. Wenn Sie einen Hinweis oder eine Lösung haben, lassen Sie es mich bitte wissen.

Danke.

    
yr_deng 08.08.2013, 13:15
quelle

1 Antwort

3

Ich habe mich mit dem gleichen Problem beschäftigt und ich denke, am Ende habe ich tatsächlich einen Workaround gefunden, ich bin kein Profi-Programmierer, aber hier ist meine Lösung:

%Vor%

Ich hoffe, diese Hilfe:)

    
Damian Legęza 24.09.2013, 21:10
quelle