监控iPhone应用程序中的内存使用情况?

时间:2011-01-02 17:51:42

标签: iphone objective-c

是否可以监控应用消耗的内存量?

6 个答案:

答案 0 :(得分:27)

实际上,你知道有多少内存是免费的,而不是你的应用程序使用了多少,这可能更重要。这是一些代码:

#import <mach/mach.h>
#import <mach/mach_host.h>

+(natural_t) get_free_memory {
    mach_port_t host_port;
    mach_msg_type_number_t host_size;
    vm_size_t pagesize;
    host_port = mach_host_self();
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
    host_page_size(host_port, &pagesize);
    vm_statistics_data_t vm_stat;

    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) {
        NSLog(@"Failed to fetch vm statistics");
        return 0;
    }

    /* Stats in bytes */
    natural_t mem_free = vm_stat.free_count * pagesize;
    return mem_free;
}

答案 1 :(得分:14)

是。在Xcode中,打开您的项目并选择运行&gt; 使用Performance Tool运行&gt; 分配。这将启动一个名为Instruments的应用程序,可用于分析您的应用程序。在这种特定情况下,它将记录所有对象分配,从而为您提供内存占用的良好概览。您可以将它与iOS模拟器和实际设备一起使用。您应该更喜欢在iOS设备上运行时分析应用程序以获得最佳效果。

乐器可以做很多事情来帮助您优化应用,因此您应该仔细看看Instruments User Guide

答案 2 :(得分:3)

您可以使用乐器。它提供iOS SDK 设备比模拟器更准确......

启动它,选择一种监控(Allocation,Leaks,Activity Monitor),选择要监控的流程和目标,然后点击记录按钮。
单击此按钮,应用程序将自行打开。

完成后,单击停止按钮以停止监控。

您可以在此处找到有关此计划的更多信息: About Instruments

答案 3 :(得分:2)

答案 4 :(得分:1)

如果你有一个苹果开发者帐户,请查看有关仪器的当前WWDC并优化ios上的内存。如果你能快速了解乐器是如何工作的,那真的值得一看。

答案 5 :(得分:1)

您可以在这里查看正在运行的内存。不会详细说明什么是消耗但是总量很大。

enter image description here