gpt4 book ai didi

Cocoa 限制导致 CPU 使用率高

转载 作者:行者123 更新时间:2023-12-03 16:03:10 27 4
gpt4 key购买 nike

我最近在我的应用程序中切换到 NSLayoutConstraint,我突然注意到,在某些 View 中,我的应用程序持续使用大约 20% 或更多的 CPU。正如我所说,只有当某些 View 出现在屏幕上并且只有在我切换到约束之后才会发生这种情况。

通过运行时间分析器,我注意到 [NSView displayIfNeeded] 在这些 View 中不断被调用,即使什么也没有发生,没有事件或用户交互。另外,如果我调整窗口大小,我可以找到某些配置,其中 CPU 使用率下降到正常值。如果我将窗口恢复到原始大小,CPU 使用率会再次增加,并且 [NSView displayIfNeeded] 会再次不断被调用。

即使约束没有崩溃(控制台中没有迹象表明无法满足约束错误), View 和大小的某些组合也会不断刷新。

有人经历过这种情况吗?或者至少知道如何更好地跟踪问题?

经过一番尝试和错误,我将范围缩小到这个 View Tableview cell

它是 TableView 中的自定义单元格。如果我用正常的单元替换它,CPU 使用率就会恢复正常。我还检查了布局是否含糊。

最佳答案

这种情况经常发生是因为约束的舍入问题。特别是如果您使用“等宽度”约束。

Two Buttons with Equal Width Constraint

造成类似问题的另一个原因是使用“Center in Container”约束。这通常会导致舍入问题。

如果您使用了这些约束之一,请检查您的约束并降低它们的优先级。如果这些规则不太适合,则可以忽略它们。或者更好的是,创建没有中心和相等宽度/高度约束的布局。

关于Cocoa 限制导致 CPU 使用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com