1

Windows Phone 7.5 / Silverlight アプリを持っています。

各ページには、4 ~ 5 個の画像、4 ~ 5 個のストーリーボード アニメーション、および 2 個のテキストブロックがあります。また、2 ~ 3 のサウンドエフェクトがあります。ユーザーは、ページ 1 からページ 15 に移動できます。ページ 10 に到達するとすぐに、メモリ消費量が制限である 90 MB を超えます。

私はこれを読みました: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2012/02/01/memory-profiling-for-application-performance.aspxアプリ。

このアプリをできるだけ早くベータ版としてプッシュしたいのですが、Marketplace テスト キットを実行すると、ピーク メモリ消費テストで失敗します。

他のポインタやリソースはありますか? ありがとう。

追加された画像: 1 ページに 1 つずつ、18 のグリッドのインスタンスがあります。ページから移動した場合でも、グリッドのインスタンスをメモリに保持しても問題ありませんか? ここに画像の説明を入力

ここに画像の説明を入力

更新- メモリが 90Mb を超える場合のプロファイラ スナップショット: また、各ページがメモリ内にあり、46 グリッド インスタンスがどこから来たのかがわからないことに注意しました。次のページに移動するときに GC.Collect も追加しました。それが重要かどうかはわかりません。 ここに画像の説明を入力

更新-次のページに移動できるコントロールのコードへのリンク: http://pastebin.com/ZnBaWfZU

4

1 に答える 1

0

各ページがバックスタックに取り残され、メモリを占有していたため、ナビゲーションをやり直す必要がありました。

ここに私がしたいくつかのことがあります:

1: OnNavigateFrom で、すべてのアニメーションを停止して null に設定する必要がありました。すべてのサウンドエフェクトで同じこと。SoundEffectInstances を破棄しました。

2: OnNavigatedTo で、手動で NavigateService.RemoveBackEntry() を呼び出してバックスタックからページを削除し、GC.Collect() を呼び出します。

お役に立てれば。上記の解決策を使用して何か問題がある場合は、お気軽にコメントしてください。

于 2012-06-04T21:05:21.790 に答える