最近アプリを切り替えましNSLayoutConstraint
たが、一部のビューで、アプリが常にCPUの約20%以上を使用していることに突然気づきました。私が言ったように、それはいくつかのビューが画面上にあるとき、そして私が制約に切り替えた後にのみ起こります。
[NSView displayIfNeeded]
タイムプロファイラーを実行することにより、何も起こらず、イベントやユーザーの操作がない場合でも、これらのビューで常に呼び出されることに気付きました。また、ウィンドウのサイズを変更すると、CPU使用率が通常の値に低下する特定の構成を見つけることができます。ウィンドウを元のサイズに戻すと、CPU使用率が再び増加し、[NSView displayIfNeeded]
常に呼び出されます。
制約がクラッシュしていなくても、ビューとサイズの特定の組み合わせが常に更新されているようです(コンソールに不満足な制約エラーの兆候はありません)。
誰かがこれを経験しましたか?または、少なくとも問題をより適切に追跡する方法を知っていますか?
少し試行錯誤した後、このビューに絞り込みました
これは、TableViewのカスタムセルです。通常のセルに置き換えると、CPU使用率は通常に戻ります。また、レイアウトが曖昧でないことも確認しました。