Blog Archives
The iPad Backup that took a long time…
This saturday I decided to create a full backup of my iPad. To cut a long story short: it took a long time. A very long time. A very very very very long time. In total the backup my iPad 16GB, which was filled with about 7GB of data, took a shocking:
18 hours, 22 minutes and 19 seconds!
Unbelievable. If you Google with Bing you can find a lot of users experiencing similar long backup times. As it turns out Apple has devised a backup mechanism, whereby backup duration is heavily dependent on the number of files it has to backup. Each file apparently takes several seconds to process, so backing up several thousand files can easily take hours.
I just had to investigate which apps caused these huge backup times. Analysis of the directory where iTunes had placed my backup showed that it basically contains pairs of two types of files: *.mdinfo and *.mddata. As these extensions imply, the *.mddata file contains the actual backup data and the related *.mdinfo file contains some meta data about that data file.
The *.mdinfo files are binary, but when opened with a text editor like NotePad they contain some readable elements. One of the more interesting things in this file is a text string beginning with the word "AppDomain". This looks like a unique identifier for an iPad app. I noticed that many files have the same AppDomain identifier in them, which leads to the conclusion that they all belong to the same app.
Based on this analysis I came up with the following scheme:
- Collect the AppDomain identifier for every *.mdinfo file in the iPad backup directory.
- Group all these files based on their AppDomain identifier.
- Sort these groupings, based on the total file count.
I wrote a quick C# console application for this and below are the results. First a little pie chart:
As you can see from the pie chart there are two apps that have claimed a really large number of files:
The winner (or better: loser) is the Wired app, the iPad version of Wired Magazine. It somehow needs 4947 files to operate. For the record: I installed the Wired app and did an in-app purchase of the issue featuring Toy Story 3. I didn’t buy any other issue.
The runner-up is the NU.nl app, which is an app that shows news content from the popular Dutch news website www.nu.nl. It’s a fantastic app, but I really haven’t got the faintest clue why it would need 3596 files to operate, since it should fetch its content live from the website.
The third place actually surprised me. For these files no AppDomain identifier could be identified. They did contain the string "MediaDomain", but I didn’t investigate in its meaning. However, since this group of files finished third, I’ve definitively needed to include them in my list.
Below you’ll find the full breakdown. Deleting this list’s top five apps from my iPad dramatically decreased backup times.
So, in the end I guess both app developers and Apple can learn something from this. App developers need to make sure their apps only use a limited number of files. And Apple needs to seriously fix their stupid backup mechanism.
AppDomain | File Count |
AppDomain-com.condenet.wiredmag | 4947 |
AppDomain-nl.sanomadigital.nuhd | 3596 |
*Unknown* | 824 |
AppDomain-nl.veronica.veronicamagazine | 659 |
AppDomain-se.illusionlabs.labyrinth2 | 504 |
AppDomain-com.nytimes.editorschoice | 367 |
AppDomain-com.linkedin.LinkedIn | 338 |
AppDomain-com.outfit7.talkingtomipad | 314 |
AppDomain-com.vsallaccess.vsaaipad | 240 |
AppDomain-com.tunaverse.iPadCinq | 199 |
AppDomain-com.chillingo.cuttheropehd | 154 |
AppDomain-com.isignz.aanbieding | 121 |
AppDomain-uk.co.guardian.Eyewitness | 113 |
AppDomain-nl.tvgids.app.ipad | 86 |
AppDomain-org.pogi.dp | 77 |
AppDomain-com.NewspaperDirect.PRiphone | 73 |
AppDomain-com.atebits.Tweetie2 | 70 |
AppDomain-se.illusionlabs.touchgrind | 64 |
AppDomain-com.concretesoftware.acestrafficpackipad | 43 |
AppDomain-com.vitotechnology.StarWalkiPad | 36 |
AppDomain-com.apple.Keynote | 30 |
AppDomain-com.melodis.soundhound.free | 24 |
AppDomain-com.dawikihoodcom | 21 |
AppDomain-com.apple.Numbers | 20 |
AppDomain-BibleReader | 19 |
AppDomain-com.ikmultimediaus.amplitubepadfull | 19 |
AppDomain-com.flipboard.flipboard | 18 |
AppDomain-com.skype.skype | 18 |
AppDomain-com.firemint.flightcontrolipad | 17 |
AppDomain-com.davidme.soundpaper | 16 |
AppDomain-com.goodiware.GoodReaderIPad | 16 |
AppDomain-com.spotify.client | 15 |
AppDomain-com.trautvetter.atomicbrowser | 15 |
AppDomain-com.mobilepioneers.tvgidslite | 13 |
AppDomain-com.smule.magicpiano | 13 |
AppDomain-wefwef | 13 |
AppDomain-com.chillingo.angrybirdsipad | 12 |
AppDomain-com.evernote.iPhone.Evernote | 12 |
AppDomain-com.amazon.Lassen | 11 |
AppDomain-com.apple.iBooks | 9 |
AppDomain-com.apple.Pages | 9 |
AppDomain-com.booking.BookingApp | 9 |
AppDomain-com.mobilepond.ipadphotogene | 9 |
AppDomain-pocketinformantiPad | 9 |
AppDomain-osfoora.hd | 8 |
AppDomain-ch.graphicarteservice.newspaper.nrc | 7 |
AppDomain-com.com2us.sliceit | 7 |
AppDomain-com.ea.recklessracing.ipad.bv | 7 |
AppDomain-com.fotopedia.heritage | 7 |
AppDomain-com.layar.Layar | 7 |
AppDomain-com.tmsoft.FartCushion | 7 |
AppDomain-com.truphone.ipad | 7 |
AppDomain-com.ebay.core.ipad | 6 |
AppDomain-com.marcoarment.instapaperpro | 6 |
AppDomain-com.teamviewer.teamviewerhd | 6 |
AppDomain-com.ted.TED | 6 |
AppDomain-com.aemotion.magworld | 5 |
AppDomain-com.mythpeople.SparkleHD | 5 |
AppDomain-com.natenai.glowhockey4ipad | 5 |
AppDomain-com.sqrt3innovations.calculatorpad | 5 |
AppDomain-nl.hyves.hyves | 5 |
AppDomain-nl.telegraaf.krant.ipad | 5 |
AppDomain-nl.vpro.3voor12.luisterpaal | 5 |
AppDomain-at.co.hlw.itaprdpclient | 4 |
AppDomain-ca.jubilo.ipadflickr | 4 |
AppDomain-com.bryandev.GearedHD | 4 |
AppDomain-com.Buienradar.BuienradarHD | 4 |
AppDomain-com.gameprom.software.ThePinball | 4 |
AppDomain-com.getdropbox.Dropbox | 4 |
AppDomain-com.idealbinary.rumpel | 4 |
AppDomain-com.imdb.imdb | 4 |
AppDomain-com.jellyfilledstudios.AmzngDiceHD | 4 |
AppDomain-com.laya.osiris.wikipanion.ipad | 4 |
AppDomain-com.tarsin.Dilbert | 4 |
AppDomain-com.thinkfun.rushhour | 4 |
AppDomain-com.wolframalpha.wolframalpha | 4 |
AppDomain-org.pogi.tigmatching | 4 |
AppDomain-com.appshopper.app | 3 |
AppDomain-com.europeandirectories.dtgipad | 3 |
AppDomain-com.handypadsoft.deviceinfo | 3 |
AppDomain-com.johnmoff.PocketPondHD | 3 |
AppDomain-com.lucasarts.miseipad | 3 |
AppDomain-com.vitotechnology.SolarWalk | 3 |
AppDomain-com.wireddevelopments.rocketeeripad | 3 |
AppDomain-de.meteogroup.WeatherProHD | 3 |
AppDomain-fr.febo.multipong | 3 |
AppDomain-com.appbc.touchable | 2 |
AppDomain-nl.mangrove.Nozzman | 2 |
AppDomain-com.tiogadesigns.bigcalculatorfree | 1 |