Chromeを高速化する方法 ver.2016。設定と拡張で限界まで速くする。
福田です。もうね、このシリーズは前のブログでは月万単位でアクセスを集めるド定番シリーズだったのですが、消したので作り直すことにしました。読者さんから技術系の記事増やすべきとお叱りを受けたのでまあそれもあります。以前より高速化の確証があり、安定しているものを抽出、さらに最新のオプションを追加、古いオプションは削除しました。自分の知識を総動員した総まとめです。なお、そこそこスペックがあるマシンの効率化に重点を置いて高速化しています。
設定をいじったり拡張を入れる前に…
まずはアップデートをしましょうね。そうしないと、最新の機能も試せませんし、改善もされません。
chrome://chrome/
にアクセスすると、Chromeのアップデート確認が行われ、アップデートが存在する場合はブラウザの再起動を促して来ます。全自動なので、ただ待って一回ボタンを押すだけです。超簡単にしてGoogle大先生推奨。
まずはやっぱりchrome://flags
やっぱりこれ。最新の機能が試せるだけあって最高です。
まずはブラウザに次のURLを打ち込みましょう。
chrome://flags
そしてEnterを押すと次のような画面が表示されると思います。画面はバージョンによって異なります。このページはv53.0.2785.143 (64-bit)をベースにしています。
ソフトウェアをチューニング(体感速度も当然向上)
最初に設定する項目は…
ソフトウェア レンダリング リストをオーバーライド
「ソフトウェア レンダリング リストをオーバーライド」。これを有効にします。これを有効にするとChromeのGPUレンダリングリストが使われるようになるため、システムにあるリストなどでサポートされていないGPUでも多少効率が良くなります。
PNaCl Subzero を強制する
その次は「PNaCl Subzero を強制する」です。有効にします。pexeファイルというものは現状ほとんど見かけませんが、「高速 Subzero トランスレータを使用するよう強制します。」と書いてあります。日本語めちゃくちゃですが、とりあえず早いっていうことは伝わってきます。
タブ / ウィンドウを高速に閉じる
「タブ / ウィンドウを高速に閉じる」これも有効にします。これを有効にするとonunload.jsを別に実行するらしいです。onunload.jsというのは開発者ならご存知の可能性も高いですが、window(またはbody要素直接).onunloadのことです。onunloadを別に実行するとのことで、onunloadで何か重い処理をするサイトで固まることなく閉じられるので快適になるということです。
ハイパーリンク監査
「ハイパーリンク監査」これは無効にします。ぶっちゃけたところ、これを使っている部分は見られませんし、pingを飛ばす以上無駄なパケットを飛ばすことになります。さらにちょっとの処理でしょうが、バカにはできません。よって無効化。
試験運用版の QUIC プロトコル
GoogleなどではHTTP/2に加え、UDPを用いるQUICを使っていますが、これの試験版を使うことにより新機能が使えてさらに安全・高速な閲覧ができるようになります。正直Google以外のサイトでQUICを用いているところを知らないのですが、最も使う回数の多いGoogleを高速化できるだけでも良いでしょう、これは「試験運用版の QUIC プロトコル」にあり、「既定」から「有効」に変えます。
試験運用版の JavaScript インタープリタ
次。「試験運用版の JavaScript インタープリタ」を有効化します。これは既存で使われているV8 Javascriptエンジンに加えてIgnitionというインタプリタをかますことでブラウザのメモリ使用量削減に貢献するものです。専門向けアプリを除けばシステムでも1,2を争うぐらいにバカ喰いするブラウザのメモリを削減すれば、全体的に軽くなることが期待できるでしょう。「既定」から「有効」へ変更します。
スクロール予測
そして「スクロール予測」という素敵な機能を有効にします。日本語の翻訳があてにならないので色々調べてみたところ、これはスクロール先を予測する、ということです。予測したスクロール先を先読みすることで、白い画面を一瞬でも出ることを無くそうという試みですね。低性能なコンピュータ(スマホも一応この場合含んでいます)では効果発揮されるでしょう。技術的にはおそらくスクロール速度やスクロール回数などからスクロール先を推測しているものと思われます。「有効にする」をクリック。
「stale-while-revalidate」キャッシュ指令を有効にする
「「stale-while-revalidate」キャッシュ指令を有効にする」。僕的にこのヘッダ(Cache-Control: state-while-revalidate=[second])をあんまり見ませんが、RFC5861などを参照した限りではリロードの際キャッシュを用いつつその後リクエストをサーバーに飛ばすことで更新を確認する、という見解なようです。人によりけりですが、リロード時にたまには古い情報が出ても問題がないという方は是非とも有効化すべき機能でしょう。有効化する場合は「既定」から「有効」にします。マジでGoogleの翻訳はゴリ押し感が否めない。
HTTP でのシンプル キャシュ
「HTTP でのシンプル キャシュ」これは有効化すべきですね。シンプルというだけあってダイレクトにキャッシュされますから(変にライブラリとかをかましたりしませんから)、リロード時などに高速に読み込みが行うことができるようになるでしょう。「既定」から「有効」へ変更します。
V8 キャッシュ モード
下に行って「V8 キャッシュ モード」これは「V8 コンパイラ データをキャッシュする」を選びましょう。キャッシュ自体はサイトなどで適切に設定されていれば問題ないです。もしこのオプションを選んで結構なサイトで問題があった場合は一個上の「V8 パーサー データをキャッシュする」を選びましょう。少なくとも僕には実害はありませんでした。
関連して「CacheStorage の V8 キャッシュ戦略。」これは「積極的」を選びます。ノーマルだとまあ普通の通りの性能ですが、せっかくコンパイラデータをキャッシュするならこちらも積極的にキャッシュしないともったいないです。
Brotli コンテンツ エンコード
続いて「Brotli コンテンツ エンコード」を「既定」から「有効」にします。Brotli圧縮はKUSANAGIなどに搭載されています(自分語りですが私が勝手に提案して勝手に搭載しました)。デコードはChromeで既に使われていますが、エンコードもこれで行うことで圧縮率が増して、アップロード時間などを短縮できる可能性があります。そうなれば通信料も抑えられます。
リソースが少ない場合に IPC 最適化を読み込めるようにします
まだまだあります。「リソースが少ない場合に IPC 最適化を読み込めるようにします」これを有効化しましょう。特にそこそこ年季の入ったマシンなどでは効果が期待できます。まあ普通のPCでもアグレッシブな使い方をしている方は効果を享受できる可能性が高いです。
FontCache スケーリング
「FontCache スケーリング」こちらも「既定」を「有効」に変更します。同じフォントを使っているサイトで別のサイズを使っている(例えば当サイトではH1と他のタグで同じフォントを用いているはずです。忘れた)場合にキャッシュを使うことで高速化が見込めるということでしょう。
ダウンロードするデータの圧縮もしてみよう
これからご紹介するのはダウンロードするデータの圧縮をすることで高速化を図るものです。HTTPS未対応ですが、HTTPを未だ使っているサイトも結構多いので有効な方法です。一番シンプルかつ目に見える高速化です。さらにセーフブラウジングが有効になることにより、セキュリティ強化もされます。
Android/iOS(一部バージョン除く)の方はChromeの設定(右上の点→スクロールして設定をタップ)をひらき、詳細設定の欄にある「データセーバー」をタップします。データセーバーの画面を開いたらあとは上の「オフ」を「オン」にするだけ。簡単ですね。
それ以外の方はブラウザからData Compression Proxy | Chrome Webストアへアクセスします。そして拡張を追加。すると拡張が表示されている(当環境ではアドレスバーの横)部分に⚡️(雷)マークが表示されているので、これをクリックして緑の方にします。禁止マークの方は無効ということです。
それをしたらあとは新しいタブで確認くんを開き、ホスト名の欄が「google-proxy-*****.google.com」のような形式に変わっていれば成功です。
メモリ解放もやってみよう
Chromeは尋常じゃなくメモリ食います。アクティビティモニタ.appで確認して見たところ、8個のタブで250MBちょっと。まあ昔に比べれば1/5ぐらいになった気がしますが、まだOS内で2,3を争うメモリの食いよう。ならばメモリ解放してみようじゃないですか。
Win/Mac/Linux/ChromeOS共通で使えるのはOneTab。これを使うとタブも減り、さらにメモリも解放されて見た目ががすっきりしますよ。
また開くときはOneTabというタイトルのタブからポチッとリンクをクリックするだけです。さらに、タブ同期の代わりとしても使えます。(公開機能)。有能。そんじょそこいらのメモリ解放拡張よりは僕はこちらをお勧めします。
Macオンリーになりますが、ターミナルで以下のコマンドを実行するとメモリがさらに解放されます。先のOneTab実行後、トライするとさらに効果的です。管理権限が必要です。
sudo purge
矛盾するけど…拡張やプラグインを切ってみる
今までの拡張系の話に真っ向から反しますが、拡張を再考してみるのも一つ高速化できる手です。
chrome://plugins/
上のURLにアクセス、いらない拡張を止めます。とは言え、ほとんど重要なものですし止めない方がむしろいいものが多いです。本当にFlashを見ないとか、PDFをブラウザでは見ない人ぐらいしか使わない方が良いです。
chrome://extensions/
こちらは容易にいじれる方です。あなたの拡張やアプリをみてください。使っていないものはありませんか?絶対あるはずです。サクサクと消していっちゃいましょう。もし不安ならどこかにメモをしておけば後で後悔することもないでしょう。ほとんどの拡張は決しても大した情報を保管していないことが多いので…
プラグインの自動実行をやめさせる
これはセキュリティ面から見てもお勧めです。FlashやJavaアプレットを使うものは少なくなったものの、未だあります。それにドライブバイダウンロードなどの危険性を秘めていることから、個々でいちいち選んだ方が効率的です。
というわけで、
chrome://settings/content
こちらを開いてください。
下にスクロール、「プラグイン」へ行きます。そしてその項目の「プラグインをいつ実行するか選択する」を選びましょう。効果は少ないものの、セキュリティ的も速度的にもちょっとの改善が見込めます。
ソフトウェアには介入しないが感覚で速度が上がったかのように感じる設定
Mac以外であれば、「滑らかなスクロール」を有効にするとスクロール時のカク付きが減って体感だけでも幸せになれるかもしれません。ただ、マウスのスクロールを用いている場合は体感が一致しなくて慣れない可能性もありますが。
また、間違ったタップをして戻る時間などを考えたら「タッチ調整」を有効にすると時短になると思います。「俺はゼッテー変なところタップしねー」っていう人は話が別ですが、多くの方は有効にすると、ミスタップが減って時短になる可能性が高いです。
Linux系統では「TCP Fast Open」が利用できます。アクセス時のサーバーとのやりとりの手順を一部省略できるので、パケットも節約、そして速度も向上。ハッピーエンドな感じ。サーバー側で対応しているところも徐々に増えているイメージですので、有効化しても損はありません。
その他マストな設定
本題からはそれますが鬱陶しいマルウェア詐欺のクソ広告をブロックするのに有効な「document.write 経由で読み込まれるスクリプトをブロックする」は是非とも有効にしましょう。document.writeを使ってメインフレームを乗っ取る正当な理由なぞ存在しないも同然ですから。実際使ってるサイト聞いたことありません。
最終手段
最終手段はパソコンを最新のものに買い換えましょう。これに尽きるしこれが一番効果でます。でもこれ言ったら負けなので最後まで言いませんでした。
基本的にブラウザはCPUをメインに使うので(場合によってはGPUもありますが)、MacであればMacBook Pro、Windowsやその他のOSであればCPU性能などをメインに選びましょう。僕はDELLをオススメします(ノートPCはDELLの中でもスペックなどを見て判断し、ご紹介しています。ご紹介しているノートPCは一人使っている人を知っています。デスクトップの方も知り合いで1人います。)
ノーパソはこれが一番コスパとかブランド的には良いと思います。
デスクトップはあんまり性能いいやつ選ぶと金額が桁違いなので抑えめだけど動作が重すぎにならないものをピックアップしました。
以上!
結局長くなってしまいましたが以上です。クソ疲れた。けどこれで皆さんが快適なブラウジング生活を送れるようになること、望んで止みません。日本語がおかしいのは留学生で日本語を喋る回数が少ないので、仕様だと思ってください。なおChromeを使うのはハイスペマシンに限る(自論)。そもそもですね、ロースペマシンでChromeを使うのが間違いなんですよ(ひどいお説教)。この記事はそこそこの性能を持ったマシンで、効率を上げるために設定する項目なので。
ロースペマシンを高速化しようという方には残念ながら…この記事はあまり役に立たないかもしれないです。
この記事は最終編集から一年以上経過しております。この記事に書かれた内容をご利用・実践される際は十分ご注意ください。