我正在研究iOS及其演出,我有一个问题!
首先,我使用原生SDK实现了一个完整的应用程序。我在应用程序的主包中添加了所有源代码。
然后,我用5个自定义框架(.framework)实现了相同的应用程序。我已经提取了所有独立于任何应用程序的源代码。例如,我有一个管理http请求的框架(发送,获取响应......)。
最后,我检查了用于2个应用程序的RAM。为此,我在iPhone 5S上关闭了后台的所有应用程序。然后,我已经启动了每个应用程序版本,我已经检查了空闲RAM。当我比较两个结果时,我注意到当第一个应用程序启动时,空闲RAM为272,39 Mo(第二个应用程序关闭)。然而,当第二个应用程序启动时,空闲RAM为325,33 Mo(第一个关闭)。
获得空闲记忆。我使用了这个方法:
vm_size_t freeMemory(void) {
mach_port_t host_port = mach_host_self();
mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
vm_size_t pagesize;
vm_statistics_data_t vm_stat;
host_page_size(host_port, &pagesize);
(void) host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size);
return vm_stat.free_count * pagesize;
}
所以,我真的不明白这种差异。我认为我的框架只在我在应用程序中使用它时才加载到RAM中,而不是在第一次启动应用程序时。这样对吗?如果这是对的。当我使用框架时,如何获得框架的加载时间?我尝试使用Instrument with Time分析器,但我没有看到任何似乎是框架加载。
先谢谢您的答复。 最好的问候。
ps:对不起我的英语,我是法国人!