我在我的应用程序中遇到内存泄漏问题。我只是想知道是否可以确定我的应用程序在堆上分配了多少内存,以便我可以相应地减少我的资源。我知道系统会发出低内存警告,我可以在那里清理我的数据,但即使有时它不会发生。如果我知道我的应用程序正在达到最大内存和堆上的剩余大小,那么我可以更好地减少我的资源。
提前致谢....
我在我的应用程序中遇到内存泄漏问题。我只是想知道是否可以确定我的应用程序在堆上分配了多少内存,以便我可以相应地减少我的资源。我知道系统会发出低内存警告,我可以在那里清理我的数据,但即使有时它不会发生。如果我知道我的应用程序正在达到最大内存和堆上的剩余大小,那么我可以更好地减少我的资源。
提前致谢....
#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;
}
使用仪器。XCode 中的 Command-I 在 Instruments 中分析您的应用程序。
是的,当然,我会推荐仪器的工具“泄漏”。它让您知道您的应用程序分配了多少内存,如果有泄漏,它会告诉您它们是什么,何时以及何时分配(并且显然没有释放)。
这是我前段时间使用的一个很好的指南。 http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments/