iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Xcode 9中的模拟器上的GoogleMaps在移动地图时使用了超过100%的CPU大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

所以我现在将我的项目转换为在Xcode 9中使用Swift 4,并开始测试我的应用程序。这是一个有四个不同标签的大应用程序,几乎所有内容都按预期工作。其中一个标签是使用GoogleMaps的地图。我从来没有遇到任何麻烦,但是当使用Xcode 9构建并在模拟器中显示时,它在移动地图时使用了超过100%的CPU,并且它非常滞后。 这是在模拟器上运行时的调试导航器。 我们做一些自定义绘图,但不是102%
所以我现在将我的项目转换为在Xcode 9中使用Swift 4,并开始测试我的应用程序。这是一个有四个不同标签的大应用程序,几乎所有内容都按预期工作。其中一个标签是使用GoogleMaps的地图。我从来没有遇到任何麻烦,但是当使用Xcode 9构建并在模拟器中显示时,它在移动地图时使用了超过100%的cpu,并且它非常滞后。
这是在模拟器上运行时的调试导航器。
我们做一些自定义绘图,但不是102%的绘图。

ios – Xcode 9中的模拟器上的GoogleMaps在移动地图时使用了超过100%的CPU

这只是在我更新到Xcode 9和Swift 4后才开始发生的。
当在iPhone 7,8或X模拟器上的Xcode 9中进行调试时,所有这些都使用iOS 11,它只占cpu的100%以上,每当我尝试移动它时,它会完全阻止UI更新大约一秒钟。我开始拖动手势,但UI只会每秒更新一次。有效地给我约1fps。

但是,在使用iOS 9的iPhone 6模拟器上的Xcode 9中进行调试时,移动地图时可达到约90%而不会滞后。我猜我在这里得到大约20-30 fps。 (这可能与我在Xcode 8上的模拟器中获得的fps相同。在模拟器上,地图从未如此流畅……)

当在实际设备(iPhone 7,iOS 11)上运行时,cpu在不断移动地图时使用大约40%,并且工作非常流畅,完全没有滞后(60fps)。

我一打开带有地图的标签,我也会在输出中得到这个,但我认为这与这个特定的问题无关:

@H_178_36@main Thread checker: UI API called on a BACkground thread: -[UIApplication applicationState] PID: *****,TID: *******,Thread name: com.google.Maps.LabelingBehavior,Queue name: com.apple.root.default-qos.overcommit,QoS: 21

这表示GoogleMapsAPI在后台线程上调用[UIApplication applicationState]。

我使用的是最新版本的GoogleMaps:2.4.0。据我所知,这个版本可能不支持Xcode 9 / Swift 4等,但我找不到任何关于新版本的内容

解决方法

更新:此问题已在Xcode 9.1 beta 2中修复

OpenGLEs.framework中存在一个错误,导致它跳过加载LLVM JIT并回退到解释着色器。这对模拟器有严重的性能影响,因为它完全是软件渲染的OpenGL(包括CoreAnimation,SceneKit等)。

编辑:为了澄清,其症状正是您所描述的:100%或更高的cpu使用率和<1fps渲染。这会影响Google Maps SDK和MapKit。 作为临时解决方法,您可以将来自Beta 3的libCoreVMClient.dylib复制到Xcode 9 GM中,并且性能应该恢复到之前的状态。必须分别为每个平台运行时执行此操作。 对于iOS,它位于:Xcode [-beta] .app / Contents / Developer / Platforms / iPhoneOs.platform / Developer / Library / CoreSimulator / Profiles / Runtimes / iOs.simruntime / Contents / resources / RuntimeRoot / System / Library / Frameworks /OpenGLEs.framework/libCoreVMClient.dylib 对于tvOS,它位于:Xcode [-beta] .app / Contents / Developer / Platforms / AppleTVOs.platform / Developer / Library / CoreSimulator / Profiles / Runtimes / tvOs.simruntime / Contents / resources / RuntimeRoot / System / Library / Frameworks /OpenGLEs.framework/libCoreVMClient.dylib 对于watchOS,它位于:Xcode [-beta] .app / Contents / Developer / Platforms / WatchOs.platform / Developer / Library / CoreSimulator / Profiles / Runtimes / watchOs.simruntime / Contents / resources / RuntimeRoot / System / Library / Frameworks /OpenGLEs.framework/libCoreVMClient.dylib

大佬总结

以上是大佬教程为你收集整理的ios – Xcode 9中的模拟器上的GoogleMaps在移动地图时使用了超过100%的CPU全部内容,希望文章能够帮你解决ios – Xcode 9中的模拟器上的GoogleMaps在移动地图时使用了超过100%的CPU所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。