If the calls are coming from your code, can you
reduce or eliminate them?
For example, perhaps your UI overlaps two shapes,
each having non-zero transparency:
    
      If they always overlap in the same amount,
in the same way, with the same transparency,
you can precalculate what this overlapped,
semi-transparent object looks like, cache it,
and use that instead of calling saveLayer(). 
This works with any static shape you can precalculate.
      Can you refactor your painting logic to avoid
overlaps altogether?

If the calls are coming from a package that you don’t own,
contact the package owner and ask why
these calls are necessary. Can they be reduced or
eliminated? If not, you might need to find another
package, or write your own.

Note to package owners:
  As a best practice, consider providing documentation
  for when saveLayer might be necessary for your package,
  how it might be avoided, and when it can’t be avoided.