私はiOSアプリケーションに一見無害な変更を加えました。アプリケーションがクラッシュするまで、メモリ消費量は常に増加し続けるため、アプリケーションはクラッシュしています。これは、おそらくメモリ消費量が10倍になったことでしょう。どのクラスが最もメモリを消費しているかをどのようにして知ることができますか?
どのクラスまたは構造体がこれに責任を負うのかをどのようにして知ることができますか?
CVPixelBuffer:800メガバイト CMSampleBuffer:100メガバイト CIImage:50メガバイト
私はXcodeののメモリデバッガおよび楽器の両方に見えたが、何も見つからなかった私のようなものを探しています。
アプリでメモリリークを検出しようとしましたか? –
おそらく、ローカル変数としてメモリ消費型を導入したのでしょう。理論的にはスタック領域を使い果たす可能性のある構造体と非常に大きなC配列が候補になる可能性があります。おそらくヒープ上に何かを置いておくタイトなループです。問題の原因となっている変更を絞り込むための改訂履歴はありませんか? –
@ Kamil.S私はどちらがコミットしているのか知っていますが、それはまだGitにコミットされていません。私は深い再帰を持っていないので、スタックスペースではありません。慎重に新しいコードをコメントアウトして行ごとにコメントを外すことで、問題はhttps://developer.apple.com/documentation/coreimage/cifilter/2138288-initにあることが判明しました。私がCIFilterを作成してそれを捨てると、それは起こるべきではないメモリをリークします。しかし、XcodeやInstrumentsでは、すべてのクラスを使用されたメモリ(そのクラスのすべてのインスタンスによって累積的に)で並べ替えるという、より良い方法を提供していますか? –