Bug 21995 - Memory leak when navigating a page off of a navigation stack
Summary: Memory leak when navigating a page off of a navigation stack
Status: RESOLVED FIXED
Alias: None
Product: Forms
Classification: Xamarin
Component: Forms ()
Version: 1.2.2
Hardware: Macintosh Mac OS
: High normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2014-08-11 10:11 UTC by Allie Miller
Modified: 2018-01-23 16:21 UTC (History)
26 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description Allie Miller 2014-08-11 10:11:25 UTC
*Overview*
When navigating a page off of a navigation stack, the memory for the view is not released. 

*Steps to reproduce*
1) Create a Xamarin.Forms project and add the code from the following Stack Overflow post:
http://stackoverflow.com/questions/25198762/is-this-a-memory-leak-in-xamarin-forms

2) Click the Next Page button and observe that a new page is created with a fixed value label showing the number of page references alive. Select this button a few times.

3) Select the Back button and then the Next Page button again.

*Expected results*
Reference count should reflect that the view is no longer in memory and set to be GC'd.

*Actual results*
Reference count reflects that the view is still in memory.

*Versioning information*
Xarmarin Forms Version:
1.2.2.6243

Full version info:

=== Xamarin Studio ===

Version 5.2 (build 386)

Installation UUID: 12c6b96a-ce3f-42f3-ae34-3bca7d4e53c2

Runtime:

Mono 3.6.0 ((no/f540f8a)

GTK+ 2.24.23 (Raleigh theme)


Package version: 306000039


=== Xamarin.Android ===

Version: 4.14.0 

Android SDK: /Users/xxx/Library/Developer/Xamarin/android-sdk-mac_x86

Supported Android versions:

2.1 (API level 7)

2.2 (API level :sunglasses:

2.3 (API level 10)

3.1 (API level 12)

4.0 (API level 14)

4.0.3 (API level 15)

4.2 (API level 17)

4.3 (API level 18)

4.4 (API level 19)

Java SDK: /usr

java version "1.8.0_05"

Java(TM) SE Runtime Environment (build 1.8.0_05-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)


=== Apple Developer Tools ===

Xcode 5.1.1 (5085)

Build 5B1008


=== Xamarin.iOS ===

Version: 7.2.6.28

Hash: 606f31a

Branch:

Build date: 2014-08-01 15:27:48-0400


=== Xamarin.Mac ===

Version:


=== Build Information ===

Release ID: 502000386

Git revision: e6a54dee5376e6e7a2d9982695b060fddc09e65d

Build date: 2014-08-04 14:03:28-04

Xamarin addins: 2b5a5c26ac2ee74c6e91a8d24ef44d0ca9cb74d0


=== Operating System ===

Mac OS X 10.9.2

Darwin xxx-MacBook-Pro-2.local 13.1.0 Darwin Kernel Version 13.1.0

Thu Jan 16 19:40:37 PST 2014

root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64
Comment 2 Kraig Spear 2014-08-31 07:32:55 UTC
If every Xamarin Forms App has memory leaks that will eventually crash the App, shouldn't the priority be higher than normal?

I suspect that the problem is the children listeners in VisualElementPackager.
Comment 3 steve 2014-08-31 12:54:22 UTC
That's exactly what's happening in my application, I can see using instruments  the memory for every page  is not released and eventually the app crashes, it's the reason I can't put the application live
Comment 4 Kraig Spear 2014-08-31 12:58:53 UTC
A workaround, but not ideal, is to reuse your page objects...
Comment 5 steve 2014-08-31 14:46:10 UTC
I tried that too but re-visting the page still seems to add a little extra memory each time if your changing the view model so you still eventually run out of memory
Comment 8 Brendan Zagaeski (Xamarin Team, assistant) 2014-09-03 13:19:24 UTC
Just for reference, another report of this issue from the forums:
http://forums.xamarin.com/discussion/18910/navigation-popasync-not-freeing-page
Comment 9 Jason Smith [MSFT] 2014-09-03 13:42:29 UTC
In active investigation now. Dispose is being called internally on all native objects so we are tracking down what is staying alive.
Comment 10 steve 2014-09-17 11:54:05 UTC
hi, has there been any update on this yet?
Comment 11 Jason Smith [MSFT] 2014-09-23 00:19:43 UTC
SHould be fixed in 1.2.3-pre3
Comment 12 Femil Shajin 2014-10-01 02:33:52 UTC
Is this Fixed I'm using 1.2.3-pre4. But still having this bug. Heap space is growing every time I revisit.
Comment 13 Jason Smith [MSFT] 2014-10-01 03:44:26 UTC
which platform are you seeing this one?
Comment 14 Femil Shajin 2014-10-01 04:11:09 UTC
In android.. It leads to OOM exception..
Comment 16 tim.ahrentlov 2015-01-16 07:04:05 UTC
It is not resolved https://bugzilla.xamarin.com/show_bug.cgi?id=25404
Comment 17 Rahul Patil 2015-04-09 11:18:36 UTC
Any solution to this yet? My project has seriously been affected by this.
Comment 18 Felipe lima 2018-01-23 16:21:16 UTC
Any solution for this issue?