memory-leaks - iOS 12+ 内存泄漏 - WKWebView 和 UIWebView

标签 memory-leaks uiwebview wkwebview ios12 javascriptcore

这不是一个问题,但我在这里发帖是希望它能挽救其他人的理智(我刚刚花了一天中最好的时间来弄清楚这个问题)。我发现了从 iOS 12.0+ 出现的内存泄漏,它影响了 WKWebView 和 UIWebView。只要您实例化 2 个 webview 中的任何一个,就会出现泄漏。 Instruments 将泄漏识别为来自 JavaScriptCore,我想这就是它同等影响两个 webview 的原因。

我试图弄清楚我做错了什么,当我决定尝试旧的 iOS 版本(11.4 - 12.0 之前的版本)时,我注意到泄漏已经消失了。我每次都可以重现这个。

要重现,您需要做的就是在一个类上分配一个 webview 的实例。

let webview = WKWebView()

或者
let webview = UIWebView()

立即,您会注意到 iOS 12.0/12.1 上的 4 个泄漏,如果您在 iOS 11.4 上运行代码,它们将不再存在。有 4 个独立的泄漏点; 3 x 96 字节和 1 x 128 字节。

Leak-WKWebView

我已经通过 BugReporter 向 Apple 提交了一个错误,在 Openradar 上复制:https://openradar.appspot.com/radar?id=6132657108811776

最佳答案

同样的问题在这里。正在测试我的应用程序是否有任何内存泄漏,一旦我打开 UIWebView,它就会给我那些确切的泄漏。

我认为它与 baseurl 中的 javascript 有关,但将其设置为 nil 会产生相同的结果。这是我对 webview 的设置:

NSURL *url = [NSURL URLWithString:@"https://example.com"];
[self.webView loadHTMLString: htmlContent baseURL: url];

希望苹果尽快给我们一个解决方案。

关于memory-leaks - iOS 12+ 内存泄漏 - WKWebView 和 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53187305/

相关文章:

c++ - avcodec_open2 方法中的 ffmpeg 内存泄漏

java - 为什么在配置 c3p0 后出现内存泄漏异常?

android - 带有 UI 和内存泄漏的保留 fragment

c - 修复 K&R 书中第 6.5 章示例中的内存泄漏(自引用结构)

ios - Web 应用程序自动重定向到 iOS 问题的初始页面(不应重定向)

iOS UIWebView 弃用。这对 Cordova 应用程序意味着什么?

ios - 检查一个 URL 是否有 http ://prefix

swift - 为什么 WKWebView 变成了 nil?

ios - 在 iOS WKWebView 中设置 "Disable web security"和 "allow file access from files"

ios - 应用程序打开 wkwebview,无法滚动并等待 3 秒应用程序崩溃