Of course, finalizers have been all but deprecated on "big" Java.  Too
unreliable -- not guaranteed to run.  If the image data management
scheme relies on finalizers it's broken by design.

On Aug 10, 11:54 pm, Bob Kerns <r...@acm.org> wrote:
> This has been discussed a fair bit in the past, if you want to try to
> look for more details, but the basic issue is that there's a cascade
> effect...
>
> (This was a couple releases ago; it's possible it has been improved
> since).
>
> You call System.gc(). Some finalizers run. This enables other stuff to
> be GC'd in the next pass, which allows the bitmap data to be
> collected.
>
> Aside from looping forever until there's enough memory, or detecting
> somehow that no changes have been made to the object graph, there's
> really no way for a GC implementation to guarantee that one invocation
> has actually achieved the absolute best-possible result, when
> finalizers are involved.
>
> This could be better -- but extreme low memory is not what most GCs
> are optimized for, so a bit of manual help isn't all that abusive, in
> my opinion. The NEED for the manual help is certainly unfortunate,
> however, so I hope they do manage to improve the situation.
>
> On Aug 10, 9:19 pm, DanH <danhi...@ieee.org> wrote:
>
> > It's kind of abusing the concept.  There should be a separate way to
> > clean up the image data (and it seems to me it should be self-
> > policing, vs having to manually do this).  But more obscene things
> > have been done in many phones, certainly.
>
> > On Aug 10, 5:16 pm, Streets Of Boston <flyingdutc...@gmail.com> wrote:
>
> > > I agree with you, but since the dalvik-vm does not 'see' the raw
> > > binary image data in Bitmaps, it may not kick of the garbage collector
> > > when process memory gets low. Calling System.gc() explicitly does work-
> > > around this problem and it seems to work, in my experience.
>
> > > On Aug 10, 4:43 pm, DanH <danhi...@ieee.org> wrote:
>
> > > > I'll add that if you need to call System.gc to prevent an error then
> > > > there's a bug in the JVM.  (Not saying that there's no bug and hence
> > > > no need to call it, just saying that, per the Java spec, the system
> > > > should automatically do a GC before raising any "hard" out-of-heap
> > > > error.  The observations by the others above is presumably an
> > > > Androidism, not proper Java behavior.)
>
> > > > On Aug 10, 3:28 pm, TreKing <treking...@gmail.com> wrote:
>
> > > > > On Tue, Aug 10, 2010 at 3:22 PM, Kumar Bibek <coomar....@gmail.com> 
> > > > > wrote:
> > > > > > I think calling System.gc() doesn't immediately trigger the
> > > > > > garbage collection. So, relying on this all the time might not be a 
> > > > > > good
> > > > > > idea.
>
> > > > >http://download.oracle.com/javase/1.4.2/docs/api/java/lang/System.htm...()
>
> > > > > <http://download.oracle.com/javase/1.4.2/docs/api/java/lang/System.htm...()>
> > > > > "When control returns from the method call, the Java Virtual Machine 
> > > > > has
> > > > > made a best effort to reclaim space from all discarded objects."
>
> > > > > ---------------------------------------------------------------------------
> > > > >  ­----------------------
> > > > > TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
> > > > > transit tracking app for Android-powered devices- Hide quoted text -
>
> > > > - Show quoted text -

-- 
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+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to