Using shadowPath property can greatly improve performance.
http://stackoverflow.com/questions/7746921/iphone-animations-performance-is-very-poor-when-views-shadow-is-on
theView.layer.shadowPath = [UIBezierPath bezierPathWithRect:theView.bounds].CGPath;Or
theView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:theView.bounds cornerRadius:theView.layer.cornerRadius].CGPath;