РЕДАКТИРОВАТЬ: я только заметил, что вы на самом деле не сказали, говорите ли вы об iOS или Mac OS X. Я предположил, iOS;если это OS X, вы сами по себе: P Для дальнейшего использования рекомендуется пометить ваш вопрос операционной системой или фреймворком, для которого вы разрабатываете.
По сути, drawRect - самый трудоемкий способ памятииметь дело с мнениями.iOS не может оптимизировать систему подпредставления, как обычно, потому что она не знает, что вы делаете, поэтому существует несколько уровней буферов кадров, которые необходимо перерисовать, прежде чем кадр достигнет экрана.Подумайте, нужно ли перерисовывать все представления, и серьезно подумайте об использовании системы макетов подпредставлений (needsLayout: and friends) или Core Animation, чтобы делать то, что вам нужно.
Если вам серьезно нужен drawRect :, don 'т ваше мнение любые подпредставления .Subviews не играют хорошо с drawRect.Либо делайте все свои рисунки в нужном вам виде, либо используйте подсистему макетов или CA.
Наконец, прошлогодние сессии WWDC здесь очень помогают.Сессия 131 «Оптимизация производительности на iOS» и сессия 104 «Разработка приложений с представлениями с прокруткой» рассказывают о производительности UIView.Вот ссылка на сессии, если вы ее потеряли: Видео сессий WWDC