ios - 以编程方式检索 iPhone 上的内存使用情况

我正在尝试以编程方式随时检索我的 iPhone 应用程序正在使用的内存量。是的,我知道 ObjectAlloc/Leaks。我对这些不感兴趣,只是想知道是否可以编写一些代码并获取正在使用的字节数并通过 NSLog 报告。

谢谢。

最佳答案

要获取您的应用程序正在使用的实际内存字节数,您可以执行以下示例中的操作。但是,您确实应该熟悉各种分析工具,因为它们旨在让您更好地了解总体使用情况。

#import <mach/mach.h>

// ...

void report_memory(void) {
  struct task_basic_info info;
  mach_msg_type_number_t size = TASK_BASIC_INFO_COUNT;
  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): %lu", info.resident_size);
    NSLog(@"Memory in use (in MiB): %f", ((CGFloat)info.resident_size / 1048576));
  } else {
    NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
  }
}

结构 info.virtual_size 中还有一个字段,它将为您提供可用虚拟内存的字节数(或在任何情况下分配给您的应用程序作为潜在虚拟内存的内存)。 pgb 链接到的代码将为您提供设备可用的内存量以及它是什么类型的内存。

https://stackoverflow.com/questions/787160/

相关文章:

objective-c - 如何使用 performSelector :withObject:aft

objective-c - 无法使用 nil 模型创建 NSPersistentStoreCoord

ios - 获取当前页面

objective-c - 如何在 Xcode 中定义预处理器符号

objective-c - Swift 变量是原子的吗?

iphone - CALayers 没有在其 UIView 的边界更改时调整大小。为什么?

objective-c - 在Objective-C中将一个类的实例转换为@protocol

objective-c - Xcode 4(和依赖项)的编译、构建或存档问题

objective-c - 按名称创建objective-c类实例?

objective-c - ViewController 响应选择器 : message sent