小编Ale*_*man的帖子

以编程方式在iOS应用中获取内存使用情况的实时/脏字节(不是常驻/实字节)

根据我到目前为止所读的内容,实际/驻留字节表示分配给应用程序的字节数,包括该应用程序不再使用但尚未被OS回收的字节。活动/脏字节是应用程序实际使用且操作系统无法回收的字节。我认为XCode Debug导航器中显示的数字是“实时字节”。

我有兴趣通过编程方式获取此数字(用于我们自己的统计信息/分析),但是我发现的代码只能提供常驻字节的值,该值大于Xcode在某些设备上显示的值(几乎是两倍) ),实际上是在相同设备上,但iOS版本不同。(在iOS 9上,它的值几乎是它的两倍,但在iOS 11上,它的值几乎与Xcode相同)。

我正在使用的代码是这样的:

struct mach_task_basic_info info;
mach_msg_type_number_t size = MACH_TASK_BASIC_INFO_COUNT;
kern_return_t kerr = task_info(mach_task_self(),
                               MACH_TASK_BASIC_INFO,
                               (task_info_t)&info,
                               &size);
if( kerr == KERN_SUCCESS ) {
    NSLog(@"Memory in use (in bytes): %u", info.resident_size);
    return info.resident_size;
} else {
    NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
Run Code Online (Sandbox Code Playgroud)

是否有一些代码来获取实时字节值(如Xcode所示)?

memory xcode memory-profiling ios

2
推荐指数
2
解决办法
869
查看次数

标签 统计

ios ×1

memory ×1

memory-profiling ×1

xcode ×1