title: Why is -drawRect faster than using CALayers/UIViews for UITableViews?
body: <p>I can already hear the wrenching guts of a thousand iOS developers.</p>
  
  <p>No, I am not noob.</p>
  
  <p><strong>Why is -drawRect faster for UITableView performance than having multiple views?</strong></p>
  
  <p>I understand that compositing operations take place on the GPU. But compositing is a one-time operation; once the layers are committed to memory, it is no different from a cached buffer that, from the point of view of the GPU, gets translated in and out of view. Compare this to using Core Graphics in drawRect, which employ an unknown amount of operations on the CPU to produce pixels that end up getting cached in CALayers anyway. What's the difference if it all ends up cached and flattened anyway?</p>
  
  <p>Also, if you're handling cell reuse properly, you shouldn't need to regenerate views on each call to -cellForRowAtIndexPath. In fact, there may be a performance benefit to having the state data (font, font size, text color, attributes, etc) cached by UIView/CALayer objects than having them constantly recreated during -drawRect.</p>
  
  <p>Why the craze for drawRect? Can someone give me pointers?</p>