我在运行iOS 7的iPhone 4S上使用Cordova应用程序导致内存崩溃。我尝试实现一个无限滚动列表,当我在列表中添加时,我开始看到内存压力和打嗝(附加似乎精细)。当我在Instruments中运行Allocations小部件时,当有20 MB的分配的Live Bytes时,我看到崩溃。
以下是有趣的部分:这个Cordova应用程序正在取代App Store上已有多年没有问题的原生应用程序。当我分析本机应用程序时,我看到内存超过20 MB,但应用程序并没有遭受任何与内存相关的崩溃。
为什么在Cordova应用程序终止后超过20 MB的Live Bytes后本机应用程序继续正常运行? Allocations小部件是否未正确考虑UIWebView Cordova使用的内存使用情况?或者是否有其他资源没有被考虑在内?
经过更多调查
我使用Memory Monitor再次运行测试。以下是Cordova应用程序的结果:
原生app:
我认为这让我们更接近答案。这两款应用都具有相似的实内存使用率,但Cordova应用中的虚拟内存要高得多。我不确定是什么导致这种情况以及为什么这不会反映在Allocations小部件中。
答案 0 :(得分:0)
据我所知,Allocation小部件的总内存使用量不准确,最好只使用Memory Monitor小部件中的Real Memory + Virtual Memory号。这是开发Cordova应用程序时唯一的选择,因为UIWebView是一个黑盒子,很难分析。