文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

「さよならChrome。私、Firefoxに戻ります。」を読んだ感想

今日以下のニュースがアップされたので、最近のブラウザについて思うところ等を書いてみようと思います。


f:id:treeapps:20180418121733p:plain

まず結論から言うと、

chromeは速くない。速くないのに大量にメモリを消費する。

という事が言えます。

chromeのプロセスとメモリ消費

その原因の一つとして、アドオン1個につき1プロセス生成している、という点が挙げられると思われます。
f:id:treeapps:20150216224240p:plain
↑これは私の環境でchromeを起動して、タブを4個開いた場合のプロセスの状態です。100M以下の細かなプロセスが沢山いますね。

ではアドオンを全て無効にしてみましょう。
f:id:treeapps:20150216224422p:plain
大分プロセスが減りました。

どれほど小さなアドオンであっても1プロセス消費してしまうので、他ブラウザと比較してメモリを多く消費していると推測します。

firefoxのプロセスとメモリ消費

f:id:treeapps:20150216224747p:plain
firefoxの場合は本体とプラグインの2プロセスしかありません。

safariのプロセスとメモリ消費量

f:id:treeapps:20150216225143p:plain
safariはchromeと同様にマルチプロセスモデルになったので、細かくプロセスが分かれています。

メモリ消費が多いと遅いか

私が使用中のiMacはメモリが32Gありますが、chromeのメモリ消費量は非常に多いですが、低速ではありません。が、高速でもありません。

一般的には情報をメモリに載せれば載せる程処理は速くなります。ディスクアクセスよりメモリへのアクセスの方が遥かに速いのです。しかしchromeはメモリの消費量の割には速くありません。それどころかfirefox・safariより確実に遅いです。

単純に1アドオン1プロセスなのがメモリ消費量に影響していて、本体のメモリ消費は実はそれほど多くないので、正直アドオンまでマルチプロセスにするのはやめて欲しいですね。

javascriptエンジンによる速度差

4〜5年前までは各社のjavascriptエンジンのパフォーマンスは大分差がありました。しかし今もうほとんどどんぐりの背比べ状態で、体感できる程の差はなくなってきています。

レンダリング速度

レンダリングとは、htmlを画面に描画する事を言います。

レンダリング速度は体感ですが、safari > firefox > chrome という順で、safariが最速に感じます。macだからでしょうかね。(windows版safariは多分そんな速く無いです)

開発ツール

各ブラウザには、htmlの要素検証やjavascriptのデバッグやプロファイラ等、静的リソースの開発を手助けする開発ツールが備わっています。↓こんなやつです。
f:id:treeapps:20150216231158p:plain

この開発ツールですが、chrome > firefox > safari、の順に充実しています。

・・・が、最近こんなものが登場しました。

Firefox Developer Edition

firefox developer editionです。

これは開発ツールに特化したブラウザで、開発者のみにフォーカスした専用ブラウザです。まだ使い込めていないのでchromeとの比較はできませんが、ちょっと使った感じでは、インスペクタでhtmlを表示している時に、対象の要素にjavascriptイベントが設定されている時は「ev」と表示され、そのevがクリックイベントなのか、jqueryによるものなのか、等が見えるのです。
f:id:treeapps:20150216231956p:plain
この機能は非常に素晴らしいと思います。私達webプログラマはhtmlで要素の検証をする機会は非常に多いので、htmlを見るついでにイベントまで見えると非常にありがたいのです。

このfirefox developer editionの登場によって、chromeが最強の開発ツールを持っている!という常識が覆ったのではないでしょうか。(まだまだ成熟していないのでchromeの方が高機能かもしれません)

chromeはいつのまにかオワコン化しているかもしれない

プロセスが分割されすぎてメモリ消費が多い。

webkitを捨ててblinkにフォークしたのにレンダリング速度は遅くはないが特別速くない。

V8エンジンによるjavascript処理は遅くはないが特別速くない。

開発ツールはfirefox developer editionにいつか負けるかも。


あれ?chromeにいいところが見つからない。

雑感

macな方にはsafariがおすすめで、windowsな方にはfirefoxがおすすめです。

macの場合、safariやitunesは明らかにwindowsより高速なのです。私の環境ではchromeよりもfirefoxよりも高速なので、自宅ではsafariしか使わなくなった程です。

firefoxは、昔のfirefoxはメモリリークしまくりで、長時間使っているとあっという間にメモリ消費が蓄積して異常にメモリを消費していましたが、それも克服しています。更にasm.jsを搭載し、徐々に最強のブラウザになりつつあると感じます。

chromeはメモリ消費やレンダリング速度よりも、chromeとchromeosの融合等の方面に力を入れているからchromeブラウザの進化が止まってきているのかもしれませんね。ブラウザの右上にいつの間にかアカウントボタンが表示されたのもchromeosのためでしょうし、暫くパフォーマンスの向上はなさそうな予感がしています。


そして最後にこれだけは言っておきたい。


IEだけはクソ