То, что сказал @MobileOverlord, безусловно, применимо, особенно части о профилировании.
Отмечу, что установка shouldRasterize = YES не является универсальным решением (почему бы Apple не установил его по умолчанию, если бы это было так?). Да, это может улучшить производительность прокрутки, но это может быть сделано за счет использования памяти, поскольку в результате вы можете получить кучу больших изображений, хранящихся в кеше.
Я полагаю, что это также связано с дополнительными затратами во время создания (но для этого нужно проверить), в том числе за пределами экрана, для создания растеризованной копии. В зависимости от того, как используется слой, это может фактически ухудшить производительность.
Дополнительным фактором, который следует учитывать, является наличие прозрачности в вашем представлении. Если вы можете гарантировать платформам, что ваше представление непрозрачно (см. SetOpaque / isOpaque), они могут оптимизировать рендеринг, не учитывая все сложности, связанные с альфа-каналами и т. Д. Аналогичные соображения применимы к CALayer.
Наконец, за пределами блока кода, который вы показали, вы делали что-нибудь незаметное для заднего слоя (например, устанавливали радиус тени или угла)? Это быстрый способ убить производительность на анимации тоже.