On Thu, Mar 31, 2011 at 2:51 PM, Romain Guy <romainguy@android.com> wrote:
Bitmaps are an entirely different problem. Android 3.0 improves bitmaps memory management a lot by reducing the time it takes for them to be reclaimed by the GC. A leak happens only if there's memory that never gets reclaimed, which I believe is not the case here. I would again be happy to track down and fix such an issue but the fact that we've never witnessed it in many many apps that use ListView makes me doubtful.On Thu, Mar 31, 2011 at 11:47 AM, Matthew Powers <mtpowers@gmail.com> wrote:Sorry I didn't explain myself fully. In our layout we have a listview with rather large images. We have shown many times that the gc does not run quick enough to clean up the images onDestroy, onConfigurationChange, etc and are getting OOM exceptions. We have seen bitmaps getting stranded and have had to clean them up by hand, thus walking the tree and recycling the individual bitmaps by hand (nulling out does nothing). There appears to be new documentation about the recycler where theoretcially we could set a recycler listener and monitor when a view is moved onto the scrap heap to achieve the same thing, however I have seen instances of onMovedToScrapHeap firing on views that are still in focus. I have submitted a bug with detailed instructions on how to reproduce this.
I could be wrong but we have had a lot of engineers looking at this leak in the listview over the last several months.On Thu, Mar 31, 2011 at 2:40 PM, Romain Guy <romainguy@android.com> wrote:
There is no need to do this whatsoever. And you cannot "recycle" Views anyway, at most you can set all the references to null manually which will not make much of a difference. The GC will eventually collect the ListView instances.
On Thu, Mar 31, 2011 at 11:32 AM, Matthew Powers <mtpowers@gmail.com> wrote:
--I have played with this MANY times. The only solution I have seen is to walkthetree in the listview and recycle your objects by handOn Thu, Mar 31, 2011 at 2:08 PM, ivan <istashak@gmail.com> wrote:
Ok I just tested the api demo again.
I went in and out of List1.java 15 times, and only saw 8 instances
still on the heap.
So, clearly "some" are being GC'd.
My question still remains... Why doesn't this happen with other views?
On Mar 31, 11:50 am, ivan <istas...@gmail.com> wrote:
> So to reiterate ...
>
> I can see every instance of a ListView/ListActivity (ever created)
> sitting around in memory, even though I force a GC in every call to
> onDestroy().
> ... And this is the expected behavior, because the Dalvik GC will
> "eventually" collect them.
>
> Why isn't this the case with other views?
>
> On Mar 31, 10:28 am, Mark Murphy <mmur...@commonsware.com> wrote:
>
> > On Thu, Mar 31, 2011 at 11:58 AM, ivan <istas...@gmail.com> wrote:
> > > Incoming references and path to GC root show only the TmpTestActivity.
>
> > If I am understanding you correctly, then, it is merely a matter of
> > them not having been GC'd yet. Bear in mind that the Dalvik GC
> > implementation does not try to reclaim all unreferenced objects in a
> > single pass.
>
> > --
> > Mark Murphy (a Commons Guy)http://commonsware.com|http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy
>
> > Android Training in NYC:http://marakana.com/training/android/
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=enYou received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--
Romain Guy
Android framework engineer
romainguy@android.com
Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them
--
Romain Guy
Android framework engineer
romainguy@android.com
Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en