There are several options on CLLocationManager
and you must use them intelligently or you will see unanticipated battery drain.
1- when you invoke the startMonitoringSignificantLocationChanges
method be sure you have not already called startUpdatingLocation
otherwise make sure you stop it with stopUpdatingLocation
before you use significant distance.
2- Check your settings for pausesAutomatically and allow deferred updates. These will impact things substantially.
3-If you don't need beacons, visits or geofencing turn that off. As these can force LM into higher battery drain modes.
4- You should also check to see what logic you execute when you receive a location update. Notifications which turn on the screen and network calls which may spin up the wifi and cell service will add significantly more battery drain to your device than the location manager alone.
You might also checkout https://LocationKit.io for a cocoapod designed to optimize location services for high accuracy and low power. Full disclosure I work for the company that makes LocationKit.