私は、メモリリークのために外を見るためにプロファイラを利用して、この問題に出くわしています:iOS:Xcode計測器からのリークを特定する方法は?
私はツリーを呼び出すために切り替えます。
だから私はそれについての詳細を知るために、それをクリックすることができる:
しかし、それは本当に私に任意の手掛かりを与えるものではありません。漏れの原因を知る方法は?
UPDATE:
- 示すシステムライブラリとコールツリーは、上記更新されます。
- オブジェクトに関する情報が漏洩した:
- をあなたはこのリークを再現するアプリで何をすべきかのいくつかの説明:
我々のアプリは、私たちのREST-と同期されますアプリの開始(フォアグラウンド)時のAPI。これはいつも私のiOS 7/iPhone 4Sで動作します。しかし、別の開発者はiOS7/iPhone 5を持っていて、それが同期しないという問題にめったに動かない。観察し、どこでもNSLogs
を置くの10日後、私たちは、この最後の夜が見つかりました:(ホームボタンを押すと、フォアグラウンドに戻って来て)同期する
Dec 15 03:18:58 appname[4801] <Warning>: A gateway to the host server is working via WWAN.
Dec 15 03:18:58 appname[4801] <Warning>: Syncing...
Dec 15 03:18:58 appname[4801] <Warning>: Eventname to be fired: f11-reachability
Dec 15 03:18:58 appname[4801] <Warning>: Sync event IOS_REACHABILITY reached.
Dec 15 03:18:58 appname[4801] <Warning>: Sync: IOS_SYNC_WITH_SERVER is true
Dec 15 03:18:58 appname[4801] <Warning>: Animating indicator...
Dec 15 03:18:58 appname[4801] <Warning>: Getting last timestamp: 1387003344.407783 then calling syncWithServerWithDate
Dec 15 03:19:27 com.apple.launchd[1] <Notice>: (UIKitApplication:com.apple.mobilecal[0x45fb]) Exited: Killed: 9
Dec 15 03:19:27 com.apple.launchd[1] <Notice>: (com.apple.afcd) Idle-exit job was jettisoned. Will bypass throttle interval for next on-demand launch.
Dec 15 03:19:27 com.apple.launchd[1] <Error>: (com.apple.afcd) assertion failed: 11B554a: launchd + 35697 [3C91C465-EFA6-32C7-A677-DD0B5FDEE0DC]: 0x9
Dec 15 03:19:27 com.apple.launchd[1] <Notice>: (com.apple.absd) Idle-exit job was jettisoned. Will bypass throttle interval for next on-demand launch.
3回目の試みは、低メモリを示していた、私たちにこれを与えた:
Dec 15 03:25:18 C1 appname[4801] <Warning>: Getting last timestamp: 1387003344.407783 then calling syncWithServerWithDate
Dec 15 03:25:29 C1 profiled[6244] <Notice>: (Note) profiled: Service stopping.
Dec 15 03:25:40 C1 crash_mover[6248] <Notice>: (Warn) <crash_mover.m mv_recursive:98> Moving './LowMemory-2013-12-14-160222.plist' -> '/var/mobile/Library/Logs/CrashReporter/LowMemory-2013-12-14-160222.plist'
私はプロファイラに行って、何かを見つけたかどうかを確認しました。
これを再現するために、私はアプリを起動し、ホーム画面に進み、次にSimulate a Low Memory
を押して、フォアグラウンドに戻るようにアプリをクリックしました。これは私が赤いスパイクを得る場所です。
- 実行しているXcodeのバージョン。
Xcode 5.02。 iPhone 4S(OK)、iPhone 5(希少ケース)のiOS 7.04
これが役立つことを願っています。ありがとう
"Call Tree"の見出しの下の左の小さなボックス。私は通常、すべてをクリックすると読みやすい結果が得られることがわかります。 –
メモリ警告を手動でシミュレートしたときに、同僚が経験した同期失敗を明示しましたか? – Rob