【问题标题】:How to determine how much memory allocated by my app in iphone如何确定我的应用在 iphone 中分配了多少内存
【发布时间】:2012-07-25 07:17:52
【问题描述】:

我在我的应用程序中遇到了一些内存泄漏问题。 我只是想知道是否可以确定我的应用程序在堆上分配了多少内存,以便我可以相应地减少我的资源。 我知道系统会发出低内存警告,我可以在那里清理我的数据,但即使有时它不会发生。 如果我知道我的应用程序正在达到最大内存和堆上的剩余大小,那么我可以更好地减少我的资源。

提前谢谢....

【问题讨论】:

标签: ios memory-management


【解决方案1】:

使用仪器。 XCode 中的 Command-I 在 Instruments 中分析您的应用程序。

【讨论】:

    【解决方案2】:

    是的,当然,我会推荐仪器的“泄漏”工具。它可以让您知道您的应用程序分配了多少内存,如果有泄漏,它会告诉您它们是什么,何时以及何时分配(显然没有释放)。

    这是我前段时间使用的一个不错的指南。 http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments/

    【讨论】:

    • 嘿,谢谢,但我想知道在运行时应用程序中不使用 Instruments。 iOS 是否有任何常量或标志可以检索我的应用程序的堆分配?
    【解决方案3】:
    #include <mach/mach.h>          // freeMemory
    #include <mach/mach_host.h>     // freeMemory
    #include <mach/mach_time.h>     // time metrics
    
    
            struct task_basic_info info;
            if(dump_memory_usage(&info)) {
                (size_t)info.resident_size;
                (size_t)info.virtual_size;
            }
    

    【讨论】:

    • 不幸的是,从那里返回的值是没有意义的。
    猜你喜欢
    • 2014-03-01
    • 2012-08-28
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多