使用Xcode和傻瓜乐器改善iOS性能
嗨,朋友,您的应用运行缓慢吗? 您是否不确定该怎么办? 您从哪里开始调查? 也许像我一样,您开始在代码中搜索🕵️️明显的东西? ( 只是意识到你要掉下去一个永无休止的兔子洞? )
好吧,不要紧跟我的朋友,因为Xcode可以帮助您解决✅,它将帮助您找到问题(或至少将您带入正确的轨道)。
这是我写的第二篇有关集成开发环境(IDE)的文章。 我使用Xcode的次数越多,我越喜欢它😎Xcode真的非常非常棒。 只需尝试一下并使用它。
旁注:进入“仪表”面板只花了182个小时
对于这个出色的IDE提供给您的大量工具,我真的感到非常惊讶。 我的软件工程培训使我通过Eclipse和NetBeans对IDE进行了介绍。 我已经使用这些工具很多年了(不要误会我,它们功能强大)。 但是,老实说,到目前为止,除了这两个之外,我将选择其他任何东西。 它们丑陋,笨拙且不直观🌶
为什么我在上面键入该段?
因为如果您不喜欢IDE,并且认为Xcode看起来与其他IDE一样,那么我在这里告诉您它实际上不是。 Xcode * IS *使用起来很愉快,我每天都在使用它。 ( PS :如果您在阅读本文并说** !? Xcode很烂!?**时很生气,请不要生气。我承认,这并不完美。)
输入… 仪器
Instruments是这个功能强大的工具,建立在DTrace之上,是Xcode附带的。 无需安装其他软件。 只需下载一次Xcode,您便拥有了所需的一切。 没有互联网连接,或者您不想连接? 不用担心,您仍然可以做您的工作。
哦,是的。。。我用这段精彩的youtube视频来介绍Instruments。 苹果当然有自己的文档,您可以在这里找到。
以下内容基本上是我对仪器的简要概述。
当您打开乐器时,它看起来像这样:
您可以像这样启动乐器:
或像这样:
(我不想让您等待,而我的慢速计算机需要花一些时间来编译和打开…但是您明白了)
接下来的工作很有意思。 上面在Instruments主屏幕中看到的所有图标,代表可以在应用程序上运行的各种实用程序。 (我将此主屏幕视为您应用程序的应用程序集合)。 希望您能理解我为什么对您的申请表说。
在所有可用选项中,我仅熟悉活动监视器,分配,泄漏和时间分析器。 哦,是的,这些工具不仅很棒,而且命名也很直观,并且按颜色按功能分组!
- 活动监视器和时间分析器为蓝色 ,它们监视🔎CPU内容
- 分配和泄漏是橙色的 ,它们监视内存中的内容。 (猜猜橙色的僵尸是什么东西吗?您猜是RAM吗?😎)
您可能想知道自己……好吧,所有这些听起来很酷, 那又如何呢? 我该怎么办? 关于实用程序,这些事情很酷的地方是,您只需跳进去,然后您便会发现问题。 就这么简单。
我建议您使用其他可用工具。 在本文的其余部分,我将重点介绍Time Profiler 。
Time Profiler —用于…分析…时间?
🤷
基本上,我将其打开,如下所示:
接着?
我们单击那个大的红色记录按钮怎么样?
它看起来像这样:
现在,像往常一样使用您的应用程序! 让Time Profiler做事。 仪器,或者我应该说Time Profiler在后台执行的操作是-在您使用应用程序时对您的环境进行采样。 换句话说,Time Profiler会记录您从按下记录到按下Stop为止所看到的应用程序运行情况。 说得通? ( 如果您曾经使用过具有某种时间轴操纵功能的软件,那么就可以了 )
因此,这是您的应用行为或其环境的快照 :
随着时间的推移, Time Profiler会定期记录许多此类样本……
…直到您按下停止按钮✋
现在,您可以脱下developer开发人员的帽子🎩并扮演侦探🕵️ … 当然,如果您愿意…
由于我们正在探索时序分析器,因此我们对时序很感兴趣。 继续展开X Xcode为您方便地制作的树。 去探索🗺。 另外,如果您在展开树时发现时间更具体(2.20 s,到1.55 s,依此类推……),请查看代码中哪些区域或哪些方法花费很长时间。 非常简单。
只需单击展开⏬并潜入🏊:
不知道从哪里开始? 尝试这个:
- 使用您的应用启动🚀Time Profiler
- 点击记录⏺
- 与普通用户一起玩您的应用app(尝试各种用例)
- 停止 ✋录音
- 然后…您可以按特定的时间间隔过滤🕵️! 🤩
这是我录制的一个示例,该示例是我在日常氛围中创建一个新的待办事项,然后过滤各种时间间隔。 您可以真正隔离各种时间间隔,如下所示:
如您所见,要过滤🔎,您只需将鼠标移到时间轴上, 单击 👇并将drag拖向您感兴趣的方向。 并且,当您进行过滤时,如果您注意到🧐,则树会相应地更改。 因此,您可以真正深入了解具体细节并找出问题所在problems
哦,还有……和……您可以保存此采样,稍后再返回:
这是我深入树the的一个实际例子。 当您发现一些有趣的东西时,像这样:
然后,您可以在方法上双击and,它将确切地显示出可能困扰您的代码的哪几行: