I have a Windows Phone 7.5 / Silverlight App.
Each page has 4-5 images, 4-5 storyboard animations and 2 textblocks. It also has 2-3 soundEffects.
User can navigate from page1 to page 15. As soon as I reach page 10 the memory consumption goes beyond 90MB, which is the limit.
I read this: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2012/02/01/memory-profiling-for-application-performance.aspx but I am not able to determine exactly what is wrong in my app.
I want to push this app as beta asap but it is failing on Peak Memory Consumption Test when I run Marketplace Test Kit.
Any other pointers or resources?
Thanks.
Added Images:
There are 18 instances of Grid, which is one per page. Is it ok to have an instace of grid to be in the memory even if I have navigated away from the page?


Updated – Profiler snapshot when memory is above 90Mb: Also as I noted each of my page is in the memory and not sure from where 46 grid instance come from. I have also added GC.Collect when I move to next page. Not sure if that matters.

Updated -Link to code for a control that allow to go to nextpage: http://pastebin.com/ZnBaWfZU
I had to re-work my navigation since each page was left behind in the backstack, it was taking up the memory.
Here are few things I did:
1: In the OnNavigateFrom, I had to stop all the animations and set them to null. Same thing for all SoundEffects. Disposed the SoundEffectInstances.
2: In the OnNavigatedTo, I manually calle NavigateService.RemoveBackEntry() to remove the page from backstack and then call GC.Collect().
Hope this helps. Feel free to comment if there’s anything wrong using the above solution.