ios – Swift应用程序仅在为Xcode的Time Profiler构建时才能合理
我正在开发一个处理大型浮点数组的应用程序,我非常失望地发现,当我在iPhone 5上运行时,Swift显然比
Python慢??10倍.我想这不可能是真的,但我会有如果我没有在时间分析器中测试应用程序并认识到它可能不是我的算法或Swift的实现导致问题,我认为这是真的.
当为探查器构建应用程序时,它可以很好地执行:它会在不知不觉中花费很少的时间进行处理.但通常情况下,如果我在Xcode中点击运行按钮(播放符号)进行构建和运行,即使编译器设置为Fastest,也需要将近20秒才能完成. (代码在构建之间保持不变.)它的速度非常慢. 当我在MacBook Pro上的模拟器中构建和运行时,速度相当快,但即便如此,它比在我的小iPhone 5上构建和运行Time Profiler时要慢. 当我将以下测试代码放在AppDelegate的application()函数中时,构建之间的性能差异也存在,因此我认为这不是GUI /线程问题或任何问题.当在Objective-C(在我的设备上的一个单独的应用程序中)和我的Mac上的Python中实现时,相同的测试代码会快速运行. var nums: [Float] = [] for var i = 0; i < 250000; i++ { nums.append(Float(i) * 0.001) } (除非通过Time Profiler运行,否则大约需要20秒.) 以前有没有经历过这样的事情?如果你能帮我解决这个问题,我会非常高兴. 解决方法
您正在以调试模式而不是发布模式构建应用程序.调试模式更容易调试,但发布模式生成更快的代码.
构建调试模式时,编译器会插入有助于调试器的特殊调试符号.我曾尝试在发布模式下调试应用程序,调试器甚至找不到我的变量.发布模式不仅不包括这些符号,还会优化您的应用程序,生成更小更快的二进制文件. 以下是在调试和发布模式之间切换的方法: >点击Xcode左上角的方案. >选择“编辑方案…” >单击“构建配置”下拉列表. >将构建配置更改为Release. >重建您的项目. (我这里没有提供图片,因为我假设你知道如何重建你的项目.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 检查用户名可用性
- XML中Element,Node,Attr的区别和联系
- Swift:可变参数
- Cocos2D-X shader(五) cocostudio导出界面置灰及复原lua实现
- ruby-on-rails – OmniAuth – Facebook登录不在user_info中
- c# – 如何将资源字符串组合为验证属性错误消息?
- XML document structures must start and end within
- 红宝石 – 为什么’////’.split(‘/’)产生[]?
- XML文件中Eclipse报错Unexpected namespace prefix "nu
- 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命