Kostya's link was a good one. On Oct 18, 2:17 pm, John Gaby <jg...@gabysoft.com> wrote: > It is funny that you mention images, because I am pretty sure that my > leak is associated with images not being freed. > > Can you point me to a reference that discusses the heap dumping tools? > > Thanks again > > On Oct 18, 11:35 am, DanH <danhi...@ieee.org> wrote: > > > You probably do need one of the tools that dumps the heap and shows > > you the classes of the objects found. > > > And do note that Android (outside of the pure Java issues) has > > "issues" of its own with regard to image storage. You can obey all of > > the Java rules on clearing references and still get bit by Android > > images. > > > On Oct 18, 12:41 pm, John Gaby <jg...@gabysoft.com> wrote: > > > > So there is no way to force all objects that no longer have references > > > to them to be garbage collected? > > > > Once again, I really don't need to know when the object is actually > > > freed. What I am interested in is finding out whether it CAN be > > > freed. That is whether all the references to it are gone. In my real > > > application, the objects in questions are much larger and more > > > complex. Yet, I never see the finalize called for them. This make me > > > think that I still have references to them, but since I don't see the > > > finalize called even in a simple case where I am sure there are no > > > references, I cannot be sure. I definitely have a leak, however, > > > since if I perform the same operation enough times, the application > > > eventually gets an Out Of Memory error. > > > > I am taking a look at using ReferenceQueue, or PhantomReference for > > > that purpose but they seem to be way more complicated that I need. > > > > Thanks again. > > > > On Oct 18, 10:21 am, DanH <danhi...@ieee.org> wrote: > > > > > I doubt that adding content to the object would make it any more > > > > likely to be collected. The garbage collector doesn't generally > > > > "weigh" objects as to whether they should be collected or not. The > > > > only differentiating factors are 1) the absolute size of the object > > > > itself (not counting references to other objects), 2) the number of > > > > times the object has "survived" garbage collection, and (sometimes) 3) > > > > the class of the object. > > > > > On Oct 18, 11:57 am, Daniel Drozdzewski <daniel.drozdzew...@gmail.com> > > > > wrote: > > > > > > On Mon, Oct 18, 2010 at 5:54 PM, Daniel Drozdzewski > > > > > > <daniel.drozdzew...@gmail.com> wrote: > > > > > > On Mon, Oct 18, 2010 at 5:40 PM, John Gaby <jg...@gabysoft.com> > > > > > > wrote: > > > > > >> Thanks for the input. I am a little confused about your comment: > > > > > > >> 'The fact that you did not see the log from finalize() does not > > > > > >> mean > > > > > >> it did not happen.' > > > > > > > It is possible that the finalize() has been called at much later > > > > > > point. > > > > > > I should have probably said that lack of finalize() does not mean > > > > > > that > > > > > > the memory has not been regained. > > > > > > > As Dan points out, finalizers don't necessary run. > > > > > > > If Android decided to kill the process running finished application, > > > > > > then it would simply do it on a system level, without trying to > > > > > > clean > > > > > > the heap within that VM first. > > > > > > > If you want to see finalizers at work, allocate many objects that > > > > > > you > > > > > > don't hold on to: > > > > > > > for(int i=0; i<10000; i++ ) { > > > > > > MyClass x = new MyClass(); > > > > > > } > > > > > > > ...and then call the following: > > > > > > > System.runFinalization(); > > > > > > System.gc(); > > > > > > > You should see your log statements. > > > > > > btw, it would also help, if you made MyClass a bit "heavier" say by > > > > > adding a member String and assigning to it some longish string literal > > > > > in MyClass' constructor. > > > > > > -- > > > > > Daniel Drozdzewski
-- 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