7

したがって、Objective-C アプリケーションを約 8 時間実行した後、最終的にマシンにこのエラー メッセージが表示されます。しかし、Instruments を 24 時間使用した後では、Instruments なしでアプリが 8 時間で実行できることの約 1% しか完了していません。

私のアプリケーションは、基本的に入力ジオメトリを受け取り、ナビゲーション メッシュを作成します。

私の質問: 問題がどこにあるのかを知るにはどうすればよいですか? アプリケーションのどこかでメモリを要求していて、決して解放していないと確信しています。分析を実行したところ、1 つのリークが見つかりましたが、重要ではなく、修正しました。

私は現在、割り当て/リークのためにInstrumentsを実行していますが、16分後には何も目立たなくなりました(そのままにしておきます)。

これまでのスナップショットは次のとおりです。 楽器

他にこれをデバッグする方法について誰か考えがありますか? これを約 20 時間実行できるようにして、完了できるようにしたいのですが、必然的に死んでしまいます :/

前もって感謝します!

4

1 に答える 1

9

あなたはチャンピオンのようにメモリをリークしています!

  • 割り当てツールで「ライブ割り当てのみを追跡」をオンにします

  • 「参照カウントイベントの追跡」をオンにします(またはそれが呼ばれるものは何でも)

  • セッションを再実行し、「全体のバイト数」列で並べ替えます

  • 一番上にある最もメモリを消費する割り当てから開始し、小さな矢印をクリックして、それらすべての割り当てがどこから来ているかを確認し、リストを下に続けます...

これは Heapshot 分析によく似ているため、少し前に書いたこのブログ記事が参考になるかもしれません。

于 2012-11-06T22:29:20.477 に答える