title: Is Pooling for Small Objects More Efficient than Android's Java Garbage Collector?
body: <p>So, I was reading this: <a href="http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html" rel="noreferrer">http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html</a>
  which says, "Public service announcement: Object pooling is now a serious performance loss for all but the most heavyweight of objects, and even then it is tricky to get right without introducing concurrency bottlenecks," and took it at face value. The article talks about generational GC, deallocation, thread-local allocation and escape analysis.</p>
  
  <p>However, I just had a little voice in my head ask me, "But is this true of the garbage collector implementation in Android?" and I don't know the answer. I wouldn't even know how to go about finding the answer.</p>
  
  <p>I remember having the GC run less often in my android apps when I implemented pooling for small objects that were used often, though. Not sure if that means a faster app.. Also, GC ran more often without pooling (according to logcat), so I assume Android's implementation of the GC loses to pooling.. But this assumption has very little backing because I didn't notice any significant performance difference with or without pooling.</p>
  
  <p>So.. Anyone here know if pooling is more efficient than Android's GC for small objects used often?</p>