memo.xight.org

日々のメモ

iPhoneのバックアップを高速化する

Summary

バックアップが10時間以上経っても終わらない。
原因は大量のキャッシュファイル。

キャッシュが削除できるアプリなら、キャッシュを削除。
またはアプリをアンインストールしてから同期をすると驚くほど早くなる。

バックアップの保存ディレクトリは以下。
%APPDATA%\Apple Computer\MobileSync\Backup\XXXXXXXXXXXX....

バックアップを行っている最中に、保存ディレクトリをチェックする。
急激にMDDATAファイル、MDINFOファイルが増えたら、
MDINFOファイルをバイナリエディタでチェック。

アプリ名やドメインなどのヒントから、
キャッシュを大量に生成するアプリを突き止める。

自分の場合は、 iComicVier , BB2C Stuntsが原因でした。
約10000ファイルが3000ファイルになり、
ファイルサイズも1.5GBから70MBになりました。
同期も10分程度で終了。

他にも、natsulion for iphone, AppSniper も遅くなるとの記事を見つけました。

Reference

ZAPAブロ~グ2.0 - 2009-09-18 - iPhoneのバックアップが遅い原因を探す!
http://zapanet.info/blog/item/1774

Focus of Interest -Drei- - 2009-06-20 - iPhoneのバックアップ時間が長い原因を発見!
http://web.me.com/katsuragawa/files/090620.html

Windows でタスクトレイにアイコンが表示されない場合がある

Summary

タスクトレイにアイコンを表示する常駐ソフトウェアで、
時々、タスクトレイにアイコンが表示されない場合がある。

具体的には、Dropbox と ttpmenu。
何かしらのソフトウェアの相性と思って放置していたが、
OSに Shell_NotifyIcon 関数 に起因する問題だった。

Shell_NotifyIcon 関数では、シェルがハングアップしている場合などを考慮し、シェルへの登録作業が 4 秒以内に完了しない場合には失敗したとみなして制御を戻します。この場合、Shell_NotifyIcon 関数は FALSE を返し、GetLastError 関数の返す値は、1460 (ERROR_TIMEOUT) となります。


シェルへの登録作業 (タスクトレイのアイコン表示を含む)が4秒以内に完了しない場合には、
起動元に制御を戻すとのこと。

つまり、タイムアウトした際に、起動元のアプリケーション側で、
タスクトレイへのアイコンを再表示するなどの処理が入っていなければ、
アイコンが表示されないままになる。

解決策としては、Startup EX や sleep.exe などを利用して遅延起動を行えば良い。

Reference

マイクロソフトサポートオンライン - SDK32: 通知領域にアイコンが登録されないことがある
http://support.microsoft.com/kb/418138/ja

スタートアップに登録したソフトがタスクトレイに表示されない - elderrisの日記
http://d.hatena.ne.jp/elderris/20080721/1216622517

その他雑文/タスクトレイを救え! - Ukiwiki
http://ukiya.sakura.ne.jp/index.php?%E3%81%9D%E3%81%AE%E4%BB%96%E9%9B%91%E6%96%87%2F%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%88%E3%83%AC%E3%82%A4%E3%82%92%E6%95%91%E3%81%88%EF%BC%81

StartupEX
http://www.takenet.or.jp/~ryuuji/startup/

Sleep Version 0.1
http://www.piedey.co.jp/softs/sleep001.html