热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

移动地图时,Xcode9中的模拟器上的GoogleMaps使用超过100%的CPU

如何解决《移动地图时,Xcode9中的模拟器上的GoogleMaps使用超过100%的CPU》经验,为你挑选了1个好方法。

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

CPU使用率

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

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

当在实际设备(iPhone 7,iOS 11)上运行时,CPU在不断移动地图时使用大约40%,并且工作非常平稳,没有任何滞后(60fps).

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

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等,但我找不到任何关于新版本的内容.



1> russbishop..:

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

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

编辑:为了澄清,其症状正是您所描述的:100%或更高的CPU使用率和<1fps渲染.这会影响Google Maps SDK和MapKit.

作为临时解决方法,您可以libCoreVMClient.dylib从Beta 3 复制到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


工作libCoreVMClient.dylib可以从这里下载(Xcode 9 Beta 3)https://www.dropbox.com/s/1bdyh86eo01x2em/libCoreVMClient.dylib?dl=0
推荐阅读
  • iOS 百度地图使用指南:基本定位与地理编码
    本文详细介绍如何在 iOS 应用中集成百度地图,实现基本的地图定位和地理编码功能。配置详情请参考官方文档:http://developer.baidu.com/map/index.php?title=iossdk ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 作为一名Ruby初学者,我对Comparable和Enumerable Mixin的用途感到困惑。本文旨在通过实例详细解释这两个Mixin的功能及其在实际编程中的应用。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
  • 本文探讨了如何在百度地图最新SDK中将RouteLine显示在地图上,并提供了解决方案。 ... [详细]
  • 本文详细解析了NYOJ20 - 吝啬的国度问题,通过图的深度优先搜索(DFS)算法解决路径查询问题。 ... [详细]
author-avatar
领悟人生的悲欢喜乐_829
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有