是否可以监控应用消耗的内存量?
答案 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)
你可以查看这个网址: https://github.com/andrealufino/ALSystemUtilities/blob/develop/ALSystemUtilities/ALSystemUtilities/ALDisk/ALDisk.m 这工作正常。
答案 4 :(得分:1)
如果你有一个苹果开发者帐户,请查看有关仪器的当前WWDC并优化ios上的内存。如果你能快速了解乐器是如何工作的,那真的值得一看。
答案 5 :(得分:1)