我目前正在开发可在iOS和Android上运行的应用程序。该应用程序的核心是用C ++编写的,并随着时间的推移分配越来越多的内存。问题是我希望同时能够使用尽可能多的内存并确保应用程序的稳定性。
当然,要做到这一点,我需要知道我仍然可以使用多少内存。这样,如果过一会儿我将需要更多的资源,我可以停止分配,而不会被操作系统杀死或崩溃。
问题是,在阅读并尝试了不同的解决方案后,我的感觉是您动态获取的信息不够可靠。例如,在iOS上:
[NSProcessInfo processInfo].physicalMemory
这是我读过的似乎不可靠的典型示例/答案之一。似乎您无法动态获取足够的信息以确保您仍然有足够的内存,因为如果操作系统使用过多的内存并在此之前发送警告,则操作系统有时会终止您的应用程序。但这也会杀死其他应用程序,因此,当我收到第一个应用程序时停止运行似乎不是最佳解决方案。
看了很多文章后,我对这个话题有些困惑。有没有一种方法可以动态可靠地知道我的应用在iOS / Android上还剩下多少内存?还是这些操作系统的内存管理太不可预测了?
谢谢您的帮助 !
从设计上讲,操作系统禁止您用尽设备上的所有物理内存。而且,操作系统和运行于其上的其他应用程序的要求意味着您的应用程序可以舒适使用的内存量会随着时间而变化。
因此,询问剩下多少可用内存并不明智。您应该将应用程序设计为使用尽可能少的内存,然后进行优化,直到使用的内存少于此。
如果您确实使用越来越多的内存,则操作系统将尝试终止其他应用程序以为您的应用程序腾出空间。这意味着,再见Facebook,再见Twitter,再见邮件,再见联系人。您的用户会注意到,他们将选择不那么频繁地启动您的应用程序,或者因此而不太满意地对其进行审核。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句