Posts tagged ‘Linux Firefox mem usage’

僕にとって、ブラウザでBackspaceでページが戻れるのは かなり重要だ。それができないと、いちいちマウスジェスチャするかAlt+←を押さなければならず、煩雑だ(パッとできない)。更に馬鹿なことに、Firefoxはショートカットキーを変更できなくしてしまった。他の件(例: アドオン切り捨て)も合わせて 一体誰のために何をしているのか分からず、とにかく早く他に移りたかった。

そして先日、Chromeのメモリ使用量が少なくなったことに気付き、更に、VivaldiはBackspaceが使える(それどころか、ごく当たり前のことだが、ショートカットを自由に変更できる)ことに気付いた(思い出した)。そして数日前にVivaldiが更新され、Chrome同様にメモリ使用量が少なくなった可能性があるので測ってみた。

その結果、最新のVivaldi(5.1.2567.46)はFirefox(97.0)と比較し得るくらい少なくなったことを確認したので、移ることにした。参考までに、以下にVivaldiとFirefoxの1タブ当たりの平均メモリ使用量を示す。

  • Vivaldi: 201MB/タブ
  • Firefox: 200MB/タブ

測定条件

  • バージョン
    • OS: Linux Mint 20.3
    • Vivaldi: 5.1.2567.46
    • Firefox: 97.0
  • 測定方法
    • 21個のページ(僕が良く使うニュース、買い物、地図など。どちらのブラウザも同じ)を数分間隔で開いたあとのメモリ使用量の増分を求め、ページ(タブ)数で除算して1タブ当たりのメモリ使用量を求めた。
    • メモリ使用量は、ブラウザのプロセスのpsコマンドのRSS(resident set size)の合計とした。

メモ

  • Vivaldiは、ページ(タブ)を開いてから少し経つ(1-2分)とメモリ使用量が減ることが多い。
    • また、ガベージコレクションなのか、タブを開いたあとのメモリ使用量が開く前より減ることもあった。
  • Firefoxも同様だが、全ページを開いたあとで何もせずに居たらメモリ使用量が増えた。メモリリークがあるのではないか。
    • 以前(2018年)はFirefoxは70MB/タブくらいだった(その時はVivaldiは217M/タブだった)が、いつからか浪費するようになってしまったようだ。
      • 今回は途中までは それほど大きくなかった(10タブで154, 20タブで186 MB/タブ)が、全部を開いてから時間が経ったら増大して上の値となった。
    • 近頃、何も特別なことをしていないのにFirefoxやシステムのメモリ使用量が増大することがあって不思議だったのは、メモリリークのせいだと分かった。
  • 仮にメモリリークが直ったとしても、Firefoxに移った当初の2倍以上になってしまい、Vivaldiとの比が当初の1/3から1/1.3まで上がったので、今となっては使う意味が完全になくなった。

Vivaldiは、何もしなくてもタブバーが縦に出せることだけでも充分僕好み(僕に言わせれば、正しい・正しく ものを作っている、あるいは「分かってる」・「筋がいい」)だが、以下をカスタマイズ・調整した(したい)。

  • 「新しいタブ」(Ctrl+T)でアドレスバーにフォーカスしない。→ Quick commandsという機能を使って対応できた(以下にその処理を書く)。それをCtrl+Tに割り当てた。
    1. New Tab
    2. Focus Address Field
  • ウインドウに名前を追加するアドオンがない? → "Window Namer and Restorer BETA"で「概ね」できる(不満はあるが、できないよりは良い)。
    • 複数のウインドウを開いていると、最小化した状態から戻す時に区別できなくなるので、ウインドウ名にそのウインドウのカテゴリを追加して区別を容易にしている。
  • [未解決] タブバーのタブの幅(高さ)が少し高く、タブが増えるとスクロールが要る。 → アドオンで何とかなる?
    • 今は、関連するタブをスタックさせて、見えるタブ数を減らして緩和している。
  • [未解決] カレンダーは どうにか動くが、今ひとつ。: betaのためか。
    • これがちゃんと動けば、Seamonkeyは要らなくなる。
  • [未解決] メールも動かない。: TLSハンドシェイクエラーになる。 → (StartTLSでなく)SSL/TLSならOKだった。
    • これがちゃんと動けばEvolutionも要らなくなる。
    • (2/18 10:44) その後更に試したら結構惜しい。: 最初に使えなかったのは、IMAPがStartTLSに対応していないためのようで、思い付いてSSL/TLSのポートを指定したら使えるようになった。
      • ただ、アドレス帳がCardDAVに対応していないので、まだ実用には向かない。が、ちょっと使った感じは悪くないので、「もう少し」の感じはする。

ちょっと使った感じでは、Firefoxより ずっと柔軟で良い!

のだが、例によって いいことずく目ではなく、以下の問題が出た。

  • サイト・ページとの相性問題
    • Twitter: 日本語入力(Fcitx+Mozc)が駄目。
      • ツイートの入力で、文字抜けや順序の乱れだけでなく それまでに入れた文字列がすっぽりなくなることがある。
        • → Linuxのアプリ(Choqok, Cawbird)は今ひとつだったので、とりあえず、Seamonkeyのブラウザを使っている。
        • → SeamonkeyはFirefox系のためか、やっぱりメモリリークするので、Epiphany(GNOME Web)を試している。 (2/19 5:28)
        • → Epiphanyはページ内の動画が再生できないので、Falkonを試している(Ubuntuのパッケージのものなので少し古い(3.1.0))。これも省メモリ(起動直後で約300MB)だ。 (2/19 9:29)
        • → なぜか、Falkonは すごく重い・遅いことがあるので、Epiphanyに戻した。 (2/20 3:24)
        • → 動画が再生できないのは不便なので、Falkonの余計そうな機能をoffにして再度試している。 (2/21 8:46)
          • なお、その前にEpiphanyの最新版を試そうとしたが、Flatpakなのに ちゃんと動かなかった(「WebViewがクラッシュ」とかいうエラーの連続で表示できない)ので止めた。
        • → Falkonには隠れたプロセス(QtWebEngineProcess)があり、それを合わせたメモリ使用量は約940MB(300+640MB)とFirefox(起動直後にtwitterを表示すると約1.1GB)と同様で わざわざ使う意味がないことが分かったので、twitterだけはFirefoxを使うことにした。 (2/20 18:58)
          • Falkonが重かったのはQtWebEngineProcessのため かも知れない。
      • その他のサイト・ページの日本語入力は、Twitterに比べれば問題ない。
        • WordPressのクラシックエディタは、文字抜けはないが、未確定文字の下線(Fcitxを改造して出るようにした)が出たままになることがある。
        • 「普通の」テキスト入力フィールドは問題なさそう。
    • [暫定対処] Ceron: スレッドを開くとハングすることがある。解決策が分からず、どうしたものか・・・
      • マウスカーソルがブルブル震えて操作できなくなり、強制終了するしかなくなる。大丈夫なこともある。
      • JSの動きの違い? ただ、検索しても出て来ない。 → 何かのアドオンが悪い?
        • → 試しに、CeronではuBlock Originを無効にしたら、その後は起こらなくなった。たまたまか効いているのかは不明だが、これで使ってみる。 (2/17 5:51)
          • Vivaldiには広告ブロック機能があるので、それを有効にしてCeron中の広告をブロックできている。
    • [Vivaldiの問題ではない] Impress watch文字が太い。 ← ページのスタイル設定(CSS)が太字のため(ひどいデザインだと思う。とは言え、比較したITmediaも別の点で ひどい・・・)。それでもFirefoxが細いのは、「太字」(bold)に使う種類(weight?)が違うのかも知れない(逆に、太字なのに太く見えないのは どうかと思う)。
      • 以下に、太字に設定しているソースを示す。
.news-headline-block ul>li {
    border-bottom: 1px dotted #aaaaaa;
    font-size: 81%;
    font-weight: bold;
    width: 100%;
}
      • 実際、ほとんどのサイト・ページでは同じように表示された。(→ 例: ITmediaVivaldi, Firefox)
        • なお、なぜかVivaldiにはtweetのボタンが出てないが、細かいことだし使わないので問題ない。
  • 時々挙動不審。。。
    • 素がいいので、今後段々良くなるのを期待したい。

 

なお、実際に使用している時のVivaldiのメモリ使用量は、5ウインドウで約100個のタブを開いている(ただし、アドオンThe great suspenderで しばらく使っていないタブを休止させている)場合、例えば4-6GB程度と、Firefox(メモリリークしていない場合)の時と大差ない。

そして、Firefoxと同様にメモリ使用量10GBで警告を出すようにしているが、普通に使っていて まだ出ていないから良さそうだ。Chrome系は随分省メモリになったものだ。と書いたが、そうではなく、「Firefoxは随分大喰らいになったものだ」が正しい。

 

PS. 書いてから気付いたが、僕はFirefoxの前はVivaldiを使っていたので、約3年ぶりに戻った。なお、その前はFirefoxだったようなので、行ったり来たりだ。

 

(2/20 8:08 一部の書式を変更、わずかに加筆・修正)

  •  2
  •  0
Keys: , , , , , , ,

Chromeブラウザはメモリを大食いするのでメインには使っていないが、追跡されたくないとかプロファイルを完全に分離したい場合などに使っている。それが数日前から、妙な感じになって居た。普通は、タブを多く開くと使用メモリ量が多くなって警告メールが来る※はずなのが、来なくなったのだ。

※システム全体がメモリ不足になるのを防ぐために、定期的に「大食いアプリ」のメモリ量をチェックして出すようにしている。

うるさくなくていいけど却って気持ち悪いのでw、手で使用メモリ量を確認したら確かに少ないようだ。そういえば、近頃バージョンが上がったので改良されたのかと思った。

ただ、不思議なことに、調べてもそういう情報がない。Chromeのリリースノートのようなページには、「詳細は追ってブログに出る」のようなことが書いてあったので、これから分かるのかも知れない(→ 調べると、97での変更内容は山ほどあるので出なさそうだ)。あるいは、Linux版(の情報)は どうでもいいのかも知れないw

なお、一つだけ、外部のページ"Google Releases New Version of Chrome With Extra Security and Memory Safety Features"(2022/1)に近いことが書いてあった。以下に引用する。

... it is important to note that Chrome 97 also incorporates several upgrades to how it uses and manages memory. A common complaint that several users tend to have about Chrome is that it uses too much memory, and to fix this the new version of Chrome is no longer going to keep user profiles and settings saved after it is exited completely which will prevent these settings from using RAM in the background.

ただ、良く読むと終了後の話のようなので、違うのかも知れない。

「それじゃ、同じChromeベースのVivaldiも?!」と期待して調べたら、残念ながら大食いだった。大体、1タブで370MBくらい食う。Firefox(96.0.1)は約230MBなので、約1.6倍だ。そして、最新のChrome(97.0.4692.99)を調べたら約220MB/タブと、わずかながらFirefoxより少ない。

Vivaldi(5.0.2497.48)のUA文字列には"Chrome/96"とあるから、ベースは一つ前のようで、メモリ削減の改良がされていないのだろうと想像した。

ここで、省メモリだという評判のあるEdgeを思い出した(これもChromeベースなので、省メモリになっているかも知れないとも思った)。大嫌いなMS製だが、もし かなり省メモリなら(我慢して)使うのもありだと思って試したら、約370MB/タブ(Edge 98)とVivaldiと同様だったのでがっかりした。

どうやら、省メモリなのはWindowsでの話のようだ。想像だが、ChromeやVivaldiもWindows版とLinux版ではメモリ管理方法が異なっていて、Linux版は ずさんでメモリを浪費しているのではないか? あるいは、Windowsではアプリの使用量は少なく見えるが、実際には陰で大量に使っているのかも知れない。

まあ、いずれにしても、Edgeを使う意味は全くないことが分かった(そもそも使いたくないから、それでいいw)。

 

参考までに、以下に、各ブラウザのタブ1個当たりのメモリ使用量(増分)をまとめる。

  • Firefox(96): 約230MB/タブ
  • Chrome(75): 約220MB/タブ
  • Vivaldi(5): 約370MB/タブ
  • Edge(98): 約370MB/タブ

※すべてLinux版で、約6個のタブを開いて増加したメモリ使用量から求めた。メモリ使用量はpsコマンドの"RSS"(resident set size)を使った。

 

結局のところ、Chromeの使用メモリ量が減ったと言っても、ようやくFirefox並みになっただけなので、すぐに移る意味は ないことに気付いた。そもそも、Chromeには標準で縦のタブバーがないなど使いにくいので、移るとしてもVivaldiだ。それが更新されて省メモリになるのを待ち、それから使い勝手で判断することにした。

Vivaldi以外に ほのかに期待しているのは、同じく大食いのElectronやSpotifyも使用メモリ量が減らないかということだ。それらもChrome(chromium)を使っているはずなので、改良の効果があるのではないか。

 

以前にも書いたが、MozillaにはThunderbirdでも嫌気が差しているので、Firefoxから移れば離脱できそうだ。Mozillaは もう少し、ユーザーや開発者が喜ぶ(せめて、怒らない・使う気を なくさせない)ような進め方を考えればいいのにと思う。

  •  2
  •  0
Keys: , , , , ,