改善 UIWebView 初始化时间

Max*_*iel 3 performance objective-c uiwebview ios

我公司使用aUIWebView来展示广告。我遇到的问题是初始化 aUIWebView似乎很昂贵;使用 Time Profiler 进行分析显示[UIWebView alloc] initWithFrame:CGRectMake(0,0,500,500)]进行需要 31-40 毫秒。这足以在以 60 FPS 运行的游戏中导致明显的掉帧。

有没有办法解决这个缓慢的初始化时间?我目前的想法是UIWebView在应用程序启动时(但在游戏开始之前)创建一个,然后重用它(可能创建一个它们的池来重用,比如如何UITableViewCell工作)或尝试看看是否WKWebView有更好的性能。

Max*_*iel 5

以下是我的发现:

  1. WKWebView不会更快地初始化。创建WKWebViews 花费的时间与创建UIWebViews的时间相似(在我做的第一个测试中,创建两个WKWebViews花费了 46 毫秒。
  2. 创建的第一个 Web 视图比后续的 Web 视图花费的时间要长得多。第一个需要 31-42 毫秒;后续创建需要大约 11 毫秒。好消息是,在应用程序启动时创建第一个 web 视图可以更便宜地创建未来的 web 视图,避免在游戏运行时出现 40 毫秒的命中。
  3. UIWebView对于我的用例来说,创建一个s池是一个很好的解决方案。通过在应用程序启动时创建 webview 然后重用它们,我可以避免在游戏运行时导致丢帧。