I tested application with xcode profiler. Result is this <img width="1440" alt="screen shot 2018-03-14 at 12 56 35 pm" src="https://user-images.githubusercontent.com/24585160/37394024-3f3d03ba-278c-11e8-863c-153ce0e8dfd2.png"> I think the problem is when CGColor objects are creating every animationGradient call. Maybe caching the objects will solve it ?!