ZAPAnet総合情報局 > ZAPAブログ2.0 > iPhoneのバックアップが遅い原因を探す!

iPhoneのバックアップが遅い原因を探す!

2009年09月18日 iPhone・iPad・Android


今月、iPhone OS 3.1がリリースされ、さらにパワーアップしたアイフォーン。

早速、新OSにアップデートした人も多いかと思いますが、ここで問題発生した人も多かったようです。
一体どんな問題があったのか?
いつまで経ってもバックアップが終わらない!
特に久しぶりにPCにiPhoneをつないでiTunesでバックアップした人は、何時間経ってもバックアップが終わらず、困ったことになったようです。

iTunesのデバイス欄でiPhoneのコンテクストメニューから「警告をリセット」を選択する「wigglin’ bloggin’ » iPhoneの同期時間を短縮する方法」などもありますが、根本的な解決にはなっていません。
自分のiPhoneもバックアップが数時間経っても終わらず、バックアップはキャンセルしてアップデートだけしました。
人によっては20時間以上かけてやっとバックアップが終わった人もいるようでした。

では、なぜバックアップに時間がかかるのか?

iPhoneのバックアップが遅い原因を探してみました。

iPhoneのバックアップが遅い原因

iPhoneのバックアップが遅い原因。それは、単純に「バックアップの処理に時間がかかっているから」です。何か不具合やエラーが起きているからではありません。

バックアップ処理は長時間かけて一体何をしているのか?

調べてみたところ、Windowsの場合は下記ディレクトリ(Windowsのバージョンによって違います)
C:\Users\ユーザー名\AppData\Roaming\Apple Computer\MobileSync\Backup\
に、「.mddata」と「.mdinfo」ファイルを大量にコピーしていました。

これがバックアップ処理の正体で、恐らくiPhoneアプリなどの設定データをコピーしてバックアップしています。ファイルコピー処理で厄介なのは、合計のデータ量ではなく、ファイルの総数が増えることによって転送速度が劇的に下がってしまうことです。1ファイルが大容量なら、転送速度とディスク書き込み速度の理論値に近いスピードでコピーされていきますが、小容量のファイルが大量にあると、転送速度は理論値とほど遠い遅さになってしまいます。

iPhoneバックアップ中にバックアップディレクトリのファイル数を調べてみたところ、まだ半分も終わっていない状態で10000ファイルを超えていました。これでは遅くて当たり前です。

それから、OSのファイルシステムによっては、1ディレクトリ内に大量のファイルがあると、OS処理の限界を迎えてしまいます(OSのファイルシステムによって扱えるファイル数は異なります)。もしたくさんのアプリを使いまくって、数十万〜数百万のファイル数になるようなら、iPhoneのバックアップ処理は自動的にサブディレクトリに分割されるべきなのかもしれません(Apple頼みですが)。
アンチウィルスソフトによっては、ファイルコピー時のチェック処理が働き、その処理の遅さも原因になっている可能性があります。

バックアップファイルの数を減らす

iPhoneのバックアップを速くするには、バックアップするファイルを減らせばよいはずです。バックアップファイルの数を減らそうと、iPhoneの設定からアプリのキャッシュなどをすべて削除してからもう一度バックアップしてみましたが、あまり改善されませんでした。

ということは、iPhoneの設定からキャッシュを削除することができないiPhoneアプリの中に、キャッシュしまくってるアプリがある可能性が高いことになります。

バイナリエディタで原因のアプリを探す

後は力わざで、バックアップディレクトリの「.mddata」と「.mdinfo」ファイルを調べていくことにしました。
これらのファイルはバイナリファイルなので、まずはバイナリエディタをダウンロードしてきます。

名前的に、「BZ」というソフトに惹かれたので、このバイナリエディタソフトをダウンロードして「.mddata」と「.mdinfo」ファイルの中身を調べてみました。予想では何かのアプリが大量にキャッシュファイルを生成していると予想していたので、適当に中身を調べて、どのアプリに原因があるかを突き止めます。

まぁ、けっこうすぐ見つかったというか、大体予想はしていましたが、大量の「.mdinfo」ファイルに
$AppDomain-org.natsulion.natsuliphon
という文字列がみつかったので、原因は「natsulion for iphoneicon」であることがわかりました(Twitterで1000人以上のユーザーをフォローしているので、大量のアイコンキャッシュが生成されているようです)。

原因のアプリを一度削除

natsulionアプリ自体にはキャッシュの削除機能が付いていないので、一度iTunesの管理画面からiPhoneへの同期を解除しました。このときiPhoneのバックアップはキャンセルしてから、natsulionを削除しました。その後、もう一度natsulionをiPhoneへ転送し、バックアップ開始。

10000ファイルを超え数時間待ってもなかなか終わらなかったバックアップが、今度は10分も経たずに終わりました。
バックアップファイル数を確認してみたところ全部で2000ファイル以下でした。natsulionだけで1万以上のファイル(バックアップが終わるまで待っていたら数万ファイルかも)をバックアップしていたことになります。

ファイル数さえ少なくなれば、iPhoneのバックアップもすぐに終わります。

ただ、アプリを一度削除してしまうと、キャッシュファイルだけでなく設定ファイルも一緒に削除されてしまうので、注意が必要です。

iPhoneのバックアップを速くする方法まとめ

長くなったので、iPhoneのバックアップを速くする方法をまとめておきます。
1.iPhoneのバックアップが遅いのは、バックアップファイルが多すぎるため
2.バックアップファイルが多すぎる原因は、アプリのキャッシュファイルに問題がある(場合がある)
3.よく使うアプリのキャッシュクリアを試してみる
4.キャッシュクリアをしてもファイル数が減らない場合は、他のアプリに原因がある
5.キャッシュが多そうなファイルを予想するか、バイナリエディタを使って「.mdinfo」の中身を調べてキャッシュファイルが多いアプリを探す
6.原因のアプリが見つかったら、そのアプリをiPhoneから一度削除する(アプリの設定も消えてしまうことに注意)
7.再びそのアプリをiPhoneに戻し、iTunesからバックアップを実行する
これで、iPhoneのバックアップが速くなるはずです。

キャッシュを大量に生成するアプリとしては、今回の「natsulion for iphoneicon」の他にも「appsnipericon」などがあります。

キャッシュはアプリの高速化に役立っているため、キャッシュ自体が悪いわけではありませんが、度を超えてキャッシュファイル数が多くなりすぎるとバックアップに時間がかかりすぎてしまいます。

もしiPhoneのバックアップが遅く我慢できなくて、「Apple Computer\MobileSync\Backup\」以下に大量のファイルがあるようなら、キャッシュの削除を試みると良いかもしれません。

関連リンク