新MacBookを使い始めてから約3日が過ぎ、使い方も完全に通常運転に戻りましたが、そうなりますと新MacBookの非力さが目につく場面も出てきました。
通常はそれほど問題無いのですが、複数のアプリを並行起動した場合などに動作がワンテンポ遅れる感覚が気になることがあります。
ネックはWindowServerのCPU負荷?
新MacBookは元々パワフルなマシンではありませんが、それにしても使っているアプリには極端にCPUやディスクを酷使するものはありません。
にもかかわらずこの待たされる感じには違和感がありましたので、アクティビティモニタなどを使って何かネックになっているリソースがないか調べてみました。
その結果目に止まったのが、WindowServerプロセスのCPU使用率が常時20〜30%以上となっている点です。
WindowServerは画面の描画を担当するプロセスですが、特に画面上の表示が大きく変化しているわけでもないのにこれだけCPUを使い続けているのは腑に落ちません。
新MacBookのCPUはアクティビティモニタ上で見ると4つに見えますが、実際には2コア4スレッドです。スレッド数が2倍に増えても処理性能は20〜30%程度しか向上しませんので、実質的には2CPUと考えたほうが実態に近いです。
そうなりますと、たとえWindowServerのCPU使用率が20%だとしてもCPU2個中0.4個が描画処理で占有されることになりますので、体感速度に影響することは十分考えられます。
対策は?
何か対策がないかとネットを検索してみたところ、以下の記事が見つかりました。
新MacBookに限らず、Yosemiteになった時からWindowServerの負荷の問題はあったようですね。それが比較的非力な新MacBookに切り替えたことによって特に目につくようになったのでしょう。
上記記事の中で特に手軽にできそうな対策は
- 透明度を下げるorコントラストを上げる
- メニューバーとDockを暗くする、を辞める
の2点です。
いずれもシステム環境設定から変更でき、前者は「アクセシビリティ」の「ディスプレイ」の中に、後者は「一般」の中にあります。
新MacBookでは後者の「メニューバーとDockを暗くする」は始めからOFFになっていましたので、前者を試してみることにしました。
前者の「透明度を下げる」「コントラストを上げる」はいずれも初期値OFFで、「コントラストを上げる」をONにすると以下のように「透明度を下げる」も自動的にONになります。
そこで「透明度を下げる」のみONと「透明度を下げる」「コントラストを上げる」」両方ONにしてレスポンスを確認したところ、両方ONのときが一番軽く感じました。
また、起動アプリを少なくしてアプリの動作の影響を少なくした状況で各場合のWindowServerのCPU使用率を10回ほどサンプリングしたところ、平均は以下ようになりました。
- 19.6%:「透明度を下げる」「コントラストを上げる」」両方OFF
- 7.1%:「透明度を下げる」のみON
- 3.5%:「透明度を下げる」「コントラストを上げる」」両方ON
やはりこの設定でWindowServerのCPU使用率は明確に低下し、体感的にも待たされ感が減少しました。
システム環境設定で設定を変えるだけの簡単操作であり、影響も画面上のパーツの見え方が若干変わる程度で大きな制約はありませんので、新MacBookを使用している方は設定しておくことをお勧めします。