私のアプリでは、iPad カメラから 100 枚以上の写真を撮ると、メモリ不足の警告が表示され、アプリがクラッシュします。私はインスツルメントリークのようないくつかのメモリ管理ツールを使用しました-割り当て、インストルメントは私にリークを示しません。しかし、割り当てを使用すると、カメラビューを開いて写真を撮り、カスタムビューを開くたびに、malloc 16bytes がより多くの割り当てを使用することがわかります。
私はグーグルをやって、アプリがどれだけのメモリを使用しているかを調べるためのコードスニペットを見つけました
-(void) report_memory {
struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info(mach_task_self(),
TASK_BASIC_INFO,
(task_info_t)&info,
&size);
if( kerr == KERN_SUCCESS ) {
NSLog(@"Memory in use (in bytes): %u", info.resident_size);
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
上記のコード スニペットは、カメラとカスタム VC を開いたときにアプリがより多くの割り当てを使用するインストルメントと同じ結果ももたらします。
私のコードでは、関数 CGContextRef、CGColorSpaceRef、CGImageRef、imageWithCGImage などを使用してサムネイル画像を作成するために 1 つのカテゴリを使用しました。クラッシュの問題はありますか?
アプリのクラッシュ/受信したメモリ警告の理由を見つけたり追跡したりする他の方法はありますか? または、これを見つけるための楽器で他のより良い方法はありますか?
ありがとう..