使用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,依此类推……),请查看代码中哪些区域或哪些方法花费很长时间。 非常简单。

只需单击展开⏬并潜入🏊‍:

不知道从哪里开始? 尝试这个:

  1. 使用您的应用启动🚀Time Profiler
  2. 点击记录⏺
  3. 与普通用户一起玩您的应用app(尝试各种用例)
  4. 停止 ✋录音
  5. 然后…您可以按特定的时间间隔过滤🕵️‍! 🤩

这是我录制的一个示例,该示例是我在日常氛围中创建一个新的待办事项,然后过滤各种时间间隔。 您可以真正隔离各种时间间隔,如下所示:

如您所见,要过滤🔎,您只需将鼠标移到时间轴上, 单击 👇并将drag拖向您感兴趣的方向。 并且,当您进行过滤时,如果您注意到🧐,则树会相应地更改。 因此,您可以真正深入了解具体细节并找出问题所在problems

哦,还有……和……您可以保存此采样,稍后再返回:

这是我深入树the的一个实际例子。 当您发现一些有趣的东西时,像这样:

然后,您可以在方法上双击and,它将确切地显示出可能困扰您的代码的哪几行: