iOS和原生应用程序上的内存分析Cordova应用程序时的结果不一致

时间:2014-07-08 19:47:58

标签: ios cordova out-of-memory instruments infinite-scroll

我在运行iOS 7的iPhone 4S上使用Cordova应用程序导致内存崩溃。我尝试实现一个无限滚动列表,当我在列表中添加时,我开始看到内存压力和打嗝(附加似乎精细)。当我在Instruments中运行Allocations小部件时,当有20 MB的分配的Live Bytes时,我看到崩溃。

enter image description here

以下是有趣的部分:这个Cordova应用程序正在取代App Store上已有多年没有问题的原生应用程序。当我分析本机应用程序时,我看到内存超过20 MB,但应用程序并没有遭受任何与内存相关的崩溃。

enter image description here

为什么在Cordova应用程序终止后超过20 MB的Live Bytes后本机应用程序继续正常运行? Allocations小部件是否未正确考虑UIWebView Cordova使用的内存使用情况?或者是否有其他资源没有被考虑在内?

经过更多调查

我使用Memory Monitor再次运行测试。以下是Cordova应用程序的结果:

enter image description here

原生app:

enter image description here

我认为这让我们更接近答案。这两款应用都具有相似的实内存使用率,但Cordova应用中的虚拟内存要高得多。我不确定是什么导致这种情况以及为什么这不会反映在Allocations小部件中。

1 个答案:

答案 0 :(得分:0)

据我所知,Allocation小部件的总内存使用量不准确,最好只使用Memory Monitor小部件中的Real Memory + Virtual Memory号。这是开发Cordova应用程序时唯一的选择,因为UIWebView是一个黑盒子,很难分析。