Why is Photos.app taking 2 months to scan faces for recognition?

Since I came to Thailand 6 weeks ago, iPhoto on my Macbook pro has been scanning for faces. On my Mac Pro desktop, this process took about 2 days as I recall. My iPhone 7 Plus, which I bought a week ago is almost finished. This time it’s incredibly slow. I am so sick of seeing this screen:

Wow, only 6,782 photos to go! At the current rate of 100 photos per day, it will take another 60 days at least.

================================================

Here is my iphone after a few days:

================================================

I’ve started tracking my progress:

2016-12-22  21:59:  9521 photos left to scan when I quit
2016-12-24  19:04: 16232 photos scanned, 8771 photos left when I quit
2016-12-24  22:14: 16,350 photos scanned, 8653 photos left when I quit
2016-12-26  00:49: 16,352 photos scanned, 8663 photos left when I quit
2016-12-26  19:46: 16,372 photos scanned, 8642 photos left when I quit
2016-12-27  18:29: 16,475 photos scanned, 8574 photos left when I quit
2016-12-28  23:43: 16,707 photos scanned, 8356 photos left when I quit
2016-12-28  23:43: 16,910 photos scanned, 8156 photos left when I quit
2016-12-29  23:51: 17,736 photos scanned, 7332 photos left when I quit
2016-12-30  ??:??: 17,933 photos scanned, 7141 photos left when I quit
2016-12-31  17:34: 18,025 photos scanned, 7064 photos left when I quit
2017-01-01  15:02: 18,307 photos scanned, 6782 photos left when I quit

So there was a burst of speed where it was doing 3,000 photos per day (still not fast, but eventually will finish at that rate), then it slowed to a crawl. I’ve tried rebooting. I’ve tried leaving Photos running, and I’ve tried quitting. Nothing seems to make much difference. Anybody have this problem and solve it?


I solved the problem! I hope this helps others. The following steps take a bit of time, but if you're like me, it was totally worth it. Most of the work is done by the computer. :-)

  1. Exported all my photos from my library as full-sized photos, choosing PNG formats, for optimal size without data loss. This full export required some time to download missing photos from iCloud, but it reassured me that no photo information was lost. It also detected all my "problem" photos that were corrupt or missing on the local hard drive. And of course the exported photos serve as a crude but real backup.
    1. Be sure to export the photos as full sized photos! In other words, don't turn on "optimize storage" in this step!
  2. Created a brand new empty Photos Library, called "good library".
    1. Important: This library MUST BE disconnected from iCloud at this point, i.e., is NOT the System Photos Library at this point. Leave it that way for now, because if you connect this nice new library to iCloud at this point, you will end up with lots of duplicate photos on iCloud after step 3, which will then all show up on your phone and computer and screw everything up and you'll have to start over! This is because the exported photos have different names than the old ones on iCloud and this confuses iCloud and it thinks they are new.
  3. Imported all my photos exported in step 1 into the new library. Scanning resumed. 27,500 photos were scanned in four days at an average speed of 271 photos per hour.
  4. Deleted all my photos from iCloud to avoid the duplicate photos problem I mentioned in step 2:
    1. Created a new empty Photos library on my Mac, called "iCloud download."
    2. I then turned on iCloud photos on my Mac and it's downloading all the photos to my Mac. I have it set to "optimize storage" so it should be quicker than full resolution would be.
    3. In the iCloud download library Select-All delete all photos then empty trash. DONE (some stragglers undeleted still)
    4. I then confirm on iCloud (https://www.icloud.com/) and on my phone that all are gone. Again, this is critical to avoid duplicates!
  5. After confirming that step 4 has deleted all my photos on iCloud, I switch to my new good library and make it the system library. Photos got uploaded and problems were all gone.