togo

= ひとりごと to go

zumuya の人による机の上系情報サイト

Mavericks の Safari のタブとプロセスについて

  • Apple
  • ソフトウェア

不覚にも昨日まで気づかなかったんですが、気づいたらMavericksのSafari 7ってタブ毎にプロセスを生成するGoogle Chromeスタイルにアーキテクチャが変わってたんですね。

(中略)

いくらMarvericksで圧縮メモリー機能を搭載して、実メモリの1.5倍程度はメモリーが有効に使えるようになったとはいえ、タブ毎に軽く100MBくらいメモリー取られると10タブで1GBですよ。さすがにちょっと富豪すぎ。

(中略)

もちろん将来的にもっともっとメモリーやCPUがリッチになっていけば、タブ毎にプロセス作るなんて無視できるコストになると思うけど、現状は明らかに重くなってるもん。

(中略)

前述したようにもっとハードウェアのリソースが潤沢になってくればタブ毎にプロセスを立ち上げるモデルのほうがメリットが強くなってくるし、新しい実装のほうが進化を続けていくのは当然のことなので、将来的にこのような設定は不要になるとは思いますが、「まだデフォルトで有効にしなくても良かったんじゃない?」という気もします。

Mavericks の Safari が複数のプロセスでタブを管理するようになったのは知っていたけど、この記事を読んで「1 タブ 1 プロセスというほどたくさんのプロセス起動していたっけ」と疑問が。Activity Monitor で数えてみたところ、“Safari Web コンテンツ”の数は 20 個。そのとき開いていたタブは 77 個なので、タブの数よりずっと少ないことになる。

ということは、 Safari ではタブが 20 個を超えるまでは同じ数のプロセスでそれを負担し、さらに増えるとプロセスあたりのタブ数が増えていく仕様かもしれない。とするとその最大数を定義する隠し設定があるに違いない!

...探してみると、ありました。DebugMaximumNumberOfWebProcesses がそのキー。これに値 6 を設定して Safari を起動したところ、しっかり 6 プロセスで 77 タブを支えるようになった。

つまりこの値を調整すれば、この記事で比較している“旧 WebKit2 プロセスモデル”と“Chrome プロセスモデル”のいいとこ取りができるかも!

とは言え自分の環境ではむしろ Mavericks にして Safari が軽くなった印象があったし、この設定を使ってもタブの数が多いせいかほとんどメモリ消費は減らなかった。常にタブを大量に開いている偏った環境での話なのであまり参考にならないと思うけど、人によっては効果があるかも。

(隠し設定なので問題が発生する可能性があります。設定するなら自己責任で。)

2014.3.22 追記

設定のやり方を記事にしました。(→ 2014.3.22

Share

リンクも共有もお気軽に。記事を書くモチベーションの向上に役立てます。