Yes, I've done an HPROF and have it open in Eclipse Memory Analyzer but it doesn't appear to be telling me what is being GCed. It looks like it's the result post-GC and is more suitable for memory usage and leak detection. I could be missing something, though. Anyone?
On May 25, 3:08 pm, Marco Nelissen <[email protected]> wrote: > Have you tried using hprof/jhat ? > Seehttp://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=d... > > On Mon, May 25, 2009 at 1:02 PM, Robert Green <[email protected]> wrote: > > > For the past 2 months of development, I've followed the android > > performance guidelines here - > >http://developer.android.com/guide/practices/design/performance.html > > - to the tee. > > > I always cache field lookups if the field is referenced more than once > > in a method. I was under the assumption that since the local variable > > is simply a pointer to the field, that it will be on the stack and > > will not need to be "cleaned" up, just like a local variable that is a > > primitive. Is this correct? > > > I'm very, very careful not to not allocate, that is, declare new > > objects in my main loop. With that said, I'm having a problem where > > I'm having about 54200 objects GCed every 55 seconds while the game is > > running. That translates to about 1000 objects per second, or at > > 60FPS (which my game runs at on the emulator), about 16 short-life > > objects per loop. > > > I have absolutely scoured my code to make sure that I'm not creating > > anything. I must be missing something though. Here are my questions: > > > 1) Are local variables ever affected by GC if they never call new, > > either explicitly or implicitly? > > -- I'm asking if I have a field that is "private ArrayList<Dog> > > dogList;" and in my method, I say "ArrayList<Dog> dogList = > > this.dogList;" - that doesn't have any impact on GC, correct? It's > > just a pointer on the stack, right? > > -- I understand that the word "new" doesn't need to be obvious because > > really any method can create something new and return it. > > > 2) What about local variable arrays? Do those go in the heap (short > > lived, GC) or on the stack? > > > 3) I did an hprof dump but it's not giving me the information I > > need. I'd really like to profile what is being GCed so I can figure > > out what's being allocated 16 times per tick. > > > Thanks for all your help! > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

