iPhone 应用调试速度非常快,但(Adhoc 和应用商店)发布速度非常慢

Posted

技术标签:

【中文标题】iPhone 应用调试速度非常快,但(Adhoc 和应用商店)发布速度非常慢【英文标题】:iPhone app Debug Is very fast but (Adhoc and appstore) Release is very slow 【发布时间】:2014-08-07 03:25:39 【问题描述】:

有没有人知道由于某个应用的发布版本中存在某种配置或第三方库而导致 iPhone 应用运行缓慢的任何潜在原因?

我有 libTestFlight、libGoogleAnalytics、libBlitFeedback、MKNetwork 以及 Bolts、NewRelic、Parse 和 Facebook SDK...其他一切都是标准 ios SDK 库。

当我为 Debug 构建时,她跑得快如闪电...我只是更改为“存档”并在试飞中发布应用程序,然后它运行起来就像一个废话。

我大量使用图像,这些图像通常都是使用“UIImageView+WebCache.h”和 SDWebImage 包https://github.com/rs/SDWebImage 加载的。

目前我只是在淘汰过程中,因为该应用程序从来没有运行过笨拙的,但我在一周的时间内进行了很多更改,所有这些都旨在使应用程序更流畅和更快。

一个示例用例是:

    用户打开应用程序。 表格视图会加载包含图像和文本的单元格。 网络通话更新数据。 用户点击标签栏以更改为 UICollectionViewController。它会重新加载。 用户点击 Profile VC,它会刷新一些数据。

在调试中...这个用例速度极快,在 iPhone 4 或 5 上转换流畅快速

在释放模式中。点击标签栏需要 3 秒才能转换。在表格视图或集合视图中滚动很笨拙。

【问题讨论】:

没有足够的信息来诊断。哪个部分慢? 一个示例用例是:用户打开应用程序。表格视图加载带有图像和文本的单元格。网络呼叫更新数据。用户点击标签栏以更改为 UICollectionViewController。它重新加载。用户点击 Profile VC,它会刷新一些数据。在调试中...这个用例闪电般快速,在 iPhone 4 或 5 上的过渡平滑而快速 在发布模式中......点击标签栏需要 3 秒才能过渡。在表格视图或集合视图中滚动很笨拙。 向同一个 URL 发出请求?建议在 Xcode Organizer > Devices > Your Device > Console 中查看设备控制台日志 【参考方案1】:

在回答我自己的问题时,原因是在我的发布目标中删除了这段特定的代码。

https://gist.github.com/steipete/5664345

更准确地说,这段代码#define PROPERTY(propName) @#propName:

// 编译时选择器检查。

如果调试

定义属性(propName) NSStringFromSelector(@selector(propName))

其他

定义属性(propName)@#propName

endif

被发现是我们问题的原因,只有通过使用分析器并意识到它只是在占用可用的 CPU 周期才发现。 iPhone 4 太慢了,基本上没反应。

无论如何,通用的答案是分析您的应用以查看导致 CPU 速度下降的原因。

【讨论】:

以上是关于iPhone 应用调试速度非常快,但(Adhoc 和应用商店)发布速度非常慢的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIRotationGestureRecognizer Cocos2D-iPhone CCSprite 旋转速度非常快

NSIS 的卸载程序运行速度非常快

为引用的子项目选择构建配置

iPhone设备上的sencha触摸应用程序非常慢

没有权利的 iPhone adhoc 分发

在 Adhoc 构建的情况下推送通知过期时间