2011-12-19 10 views
2

私はiPad上で走っているゲームをスムーズに動かそうとしています。私の問題はこれです。ユーザーが起動すると、うまくいきます。特定のゲーム。しかし、ユーザーが長くなっても、正確にどれくらい時間がかかるのかわからない場合、ゲームは遅れをとるようになります。リーク音源はすべて漏れを検出していますか?

私はリーク機器を使って実行していますが、最初は1トンのリークがありましたが、今は2、NSMutableArrayとNSStringだけです。しかし、これらは一度だけ作成され、それぞれ32バイトしか占めていないと言われています。

誰もこれについて何か経験がありましたか?

+1

「ラグは、」メモリリークが原因ではないかもしれません。.. –

答えて

2

そして、それはおそらくリークではありません:)

あなたはまだどこかにそれへの参照を持っているので、あなたがより多くのメモリを使用しているが、それは漏れていない状況があるかもしれない(例えばにデータを追加します配列は大きくなりますが、それはリークではありません - 機器はあなたが何をする予定なのかわかりません!)

これはおそらくメモリの問題ではないでしょう。配列は大きくなりますが、それはあなたの問題ではないかもしれません。問題は、配列全体を反復処理する各フレームで、配列が大きくなるにつれて時間がかかることです。

あなたのゲームのどこにこの王が起こっているかもしれないと思いますか?

また、楽器を使用して時間の経過とともにメモリの使用状況を調べ、それが上がったり上がったりしているかどうかを確認することもできます。

2

@deanWombourneが述べたように、それはリークではないかもしれません。それは、いわゆる放棄されたメモリかもしれません。 Instrumentsのメモリ割り当てを調べ、All Allocation行のLive Bytes列が時間とともに増加し続けるかどうかを確認してください。ゲーム中の特定の一連の操作を繰り返しながら、ヒープショットを取ることができます。 Heapshotsを取る方法の詳細については、以下を参照してください:

http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/

関連する問題