Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIWebView漏洞、JS垃圾收集器和;WebCore虚拟机_Ios_Objective C_Memory Leaks_Uiwebview - Fatal编程技术网

Ios UIWebView漏洞、JS垃圾收集器和;WebCore虚拟机

Ios UIWebView漏洞、JS垃圾收集器和;WebCore虚拟机,ios,objective-c,memory-leaks,uiwebview,Ios,Objective C,Memory Leaks,Uiwebview,我一直在为一个应用程序构建一个浏览器功能,它显然可以与UIWebView一起使用。当浏览器打开时,我看到内存跳跃,这是有意义的,但是在泄漏配置文件期间,我看到一些令人不安的结果: VM:JS垃圾收集器和VM:WebCore可获取数据只要我浏览的次数越多,垃圾收集器就越高。更糟糕的是,当浏览器被解除分配并且其web视图被释放时,这些对象仍然存在,占用了超过6MB的内存 如果我没有正确处理UIWebView,我不确定该怎么办,但在解除分配UIWebView后,该内存似乎存在问题 在浏览器被释放之前

我一直在为一个应用程序构建一个浏览器功能,它显然可以与UIWebView一起使用。当浏览器打开时,我看到内存跳跃,这是有意义的,但是在泄漏配置文件期间,我看到一些令人不安的结果:

VM:JS垃圾收集器VM:WebCore可获取数据只要我浏览的次数越多,垃圾收集器就越高。更糟糕的是,当浏览器被解除分配并且其web视图被释放时,这些对象仍然存在,占用了超过6MB的内存

如果我没有正确处理UIWebView,我不确定该怎么办,但在解除分配UIWebView后,该内存似乎存在问题

在浏览器被释放之前,我做了一些清理,正如本文中所说,但这似乎没有任何区别


有人有这个问题吗?任何洞察都会很棒。我已经看到了一些与uiWebVIEW内存问题相关的问题,但是它们并没有详细说明配置文件的结果。

< P>我不确定我是否会立即考虑这个问题。只有在将web视图添加到视图层次结构并加载请求时,这些VM才会启动

可能只是操作系统让这些资源保持活力,以防它们再次被使用

我试图复制你的代码来清理数据,结果下降了50%

JS垃圾收集器的最小容量总是在3MB左右,但最大容量为8MB WebCore可获取的数据总是在700KB左右


您也可以认为,这可能是由于JavaScript代码中的漏洞而继续生存的坏JavaScript。

在用户继续交互的情况下,随着内存使用的增加,没有一种方法来阻止它,我会考虑一个相当严重的问题。3MB在移动世界是一个很大的内存空间,特别是当它实际上什么都不做的时候。如果有办法处理它,我愿意这样做。我在模拟器中尝试了其他方法,在取消分配web视图后发送内存警告。它将您提到的两个虚拟机的总内存减少到2.1MB。因为我们谈论的是网络资源,我不确定如果它开始消耗太多内存,是否有办法减少内存使用。我们没有本地资源的内存管理选项。我也看到了同样的问题,iOS 7.1。我这里有一个非常简单的示例项目:我还提交了一个bug