macOS 应用程序长时间运行后 CPU 利用率突然下降

问题描述 投票:0回答:1

我正在努力解决我正在开发的 macOS 应用程序的 CPU 性能和内存优化问题。

我正在开发的应用程序由连续的实时计算和图形元素组成。如果我监控各个组件,CPU 使用率如下

  • FetchAudioData(使用定时器捕获实时数据并执行计算):20%-30%。
  • MEMU(图形操作1):30%至40%。
  • 全屏(图形任务 2):20% 到 40%。

我运行应用程序,看到 CPU 负载始终为 50% 到 100%,基于 600% 的满容量。

然而,运行3-4小时后,CPU利用率突然下降至10%左右。 (很难确定具体原因,因为这段时间很难持续监控)

此外,我意识到一些内存问题并正在处理它们,但它们似乎并不是致命的泄漏,所以我现在将它们降级为较低优先级的任务。

在十字路口,我应该优先考虑代码优化,先解决内存小问题,花三到四个小时密切监控,还是对Mac系统进行更深入的了解?

通过 Instruments 中的 Profile 进行的分析过程在捕捉 CPU 利用率突然变化的确切时刻方面也很棘手。

我什至愿意接受可能有任何见解的 iOS 开发人员的建议。

  • 我还想知道为什么图片中的线程数在 3-4 小时后就变成了 3000 多。

我还想知道这是否是异步处理的问题。

任何建议都可以在评论中提出。

macos cpu
1个回答
0
投票

https://developer.apple.com/forums/thread/737982?page=1#765567022 作者: ngb

您可能存在线程争用。他们可能会阻止每个人 其他。太多的线程可能会使系统不堪重负。 有时,您可以通过更少的线程获得更好的利用率。真的只有你 想要尽可能多的 cpu 核心同时运行,否则 他们互相打断对方。

你可以查看instruments中的并发工具以获得一些提示。

© www.soinside.com 2019 - 2024. All rights reserved.