【问题标题】:How to decrease CPU usage? [closed]如何降低 CPU 使用率? [关闭]
【发布时间】:2016-06-11 10:17:27
【问题描述】:

我制作了一个 Swift 应用程序,它在 iPhone 6 和 6 plus 上运行良好,但是当我在 iPhone 5 及更低版本上测试它时,有一些滞后。

经过分析,我发现 CPU/内存消耗很高。

我想知道是否有一些提示或最佳做法可以减少这种使用?

我知道使用不同的线程并在不再使用时返回空闲状态非常重要,但我已经这样做了。

消耗资源最多的代码会创建一个容器(如通知中心),上面有一些按钮,并在它们下方应用模糊效果。

【问题讨论】:

    标签: iphone swift memory cpu


    【解决方案1】:

    好的,我找到了问题所在。 我使用库“FXBlur”来创建模糊效果。

    该库具有每秒更新容器内容的功能。

    我刚刚修改了代码以删除此功能,我的 CPU 使用率现在在 0 到 3% 之间波动,而不是之前的 37%。

    感谢大家的帮助。

    【讨论】:

      【解决方案2】:

      当你说

      经过分析,我发现 CPU/内存消耗很高

      那是使用时间分析工具吗?

      Time Profiler 将准确地向您显示正在消耗 CPU 资源的内容,以及您对 CPU 内核的使用情况、线程延迟等。

      Time Profiling with Instruments

      【讨论】:

      • 是的,那是使用时间分析器,但我不得不承认我不熟悉它。我将查看您的链接,以了解如何查看正在消耗我的资源的内容。谢谢
      • 花点时间乐器,很有趣。查看有关它的 WWDC 视频,他们每年都会讨论一两次,虽然不是很详细,但足以使用它并确定 CPU 中占用时间的原因。 Instruments 视图右侧有几个选项,例如隐藏有助于仅显示相关信息的系统库
      • 我开始看一个 youtube 视频,它给出了一些解释,太棒了。
      • ?仪器很棒,我认为人们会远离它,但使用起来并不复杂。
      【解决方案3】:

      我发现这个来自 Apple 的 document 提供了提高性能的好技巧。

      还要确保您没有在主线程上执行资源密集型非 UI 工作,因为这会导致速度较慢的设备出现延迟。

      【讨论】:

      • 我会看看这个文件。谢谢雨果。
      • 我建议您首先确保您没有在主线程上进行任何繁重的计算,然后查看文档。
      • 我使用工具深入探索了哪个函数使我的 CPU 过载,我发现:imgur.com/pRIR5zU,此外,只有在我的容器下垂时才会出现加速。
      • 如果您发布代码,我会更容易就此提出建议。这似乎是大部分时间都在从磁盘解码图像。
      • 在后台线程上使用 SDWebImage 进行图像解压。 github.com/rs/SDWebImage
      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2023-04-03
      • 2023-01-03
      • 2012-11-16
      • 2018-12-13
      • 2023-03-18
      • 2015-11-01
      相关资源
      最近更新 更多