昨日、Spotifyの音量正規化がようやく何とかなったと一息ついていたのだが、ふと気付いたら、なぜか空きメモリがほとんどなくなっていた。道理で近頃Spotifyが重いような気がした訳だ。実際、何がメモリを食っているか調べたら、そのSpotifyが10GB以上食っていた(こういうのを「メモリー・リーク」という)。それは重くなるわなあ。。。

まずは、アプリの最大使用メモリ量を数GBに制限したのだが、抜本的な解決方法を考えるために、原因を調べた。ミニプレーヤの関係(Dbusで繋げているため)かと思ったが、結局、アプリ自体が悪いようで、既知の問題("Massive memory leak under Ubuntu 16.04 LTS" (2018/6/14))だった。そして、その投稿へのSpotifyからの回答はなし・・・

仕方ないので、どうにかして解決あるいは緩和できないか調べている。再生したりプレイリストを開くと増えるし、そもそも、何もしなくても増える。今は、アプリの内部情報を消さずにいて溜まっているせいではないかと考えて、起動時のオプションに"--trace-file=/dev/null"を指定して試しているが、半日も経たないうちに使用メモリ量は200MB近く増えて1.3倍になっており、期待できない。

"--trace-file=/dev/null"を指定しないと、起動直後の使用メモリ量が2倍近くになるようなので、指定した方がいいようだ。 (15:10)

(10/13 6時、6:43追記) Spotifyアプリのキャッシュ(~/.cache/spotify)と設定(~/.config/spotify)を削除すると(設定の削除は不要かも知れない)、使用メモリ量の増加速度が小さくなるようだ。1/3くらい(12MB/時)に遅くなった。それでも、メモリー・リークが直った訳ではない。キャッシュのデータ量は10GBにもなっていたので、定期的な削除が要りそうだ。というか、して欲しい・・・ ← 削除しなかったらもっと大きくなるはずだし、自分でも自動削除するようにしていて忘れていた。予想よりデータ量が多かったので、もっと頻繁に削除が要るのかも知れない。

どうしても駄目なら、アプリの使用メモリ量がとても多くなった場合には、長時間アイドル時にアプリを再起動しようかと思っている。以前はミニプレーヤで音量正規化の切替時に再起動していたから(今まで気付かなかったのは、これで頻繁に再起動していたからだろう)、実現するのは簡単だ。が、どうにも気分が悪い。(それに、ミニプレーヤのプログラムがどんどん肥大化するのも嫌だw)

→ つまらない機能を作るのが面倒なので、定期的にSpotifyアプリの使用メモリ量をチェックして、大きくなり過ぎていたらメールで通知するようにした。メールが来たら、自分で再起動すればいい。急激に大きくなる訳ではないから、それで充分だ。何でも作ればいいってもんじゃないw

→ 使用メモリ量の変化を見ていたら、毎日再起動したくなりそうな速さ(数MB/分 → 1GB/日以上)で、そんなに毎日手で再起動するのは面倒なので、自動再起動機能を作った。 まったく手が掛かる奴だw なお、使用メモリ量が多くなってアイドル時に自動再起動する時は、メニューボタンの背景色を変えて分かるようにした。あと、メモリ量のチェックを2段階にして、2番目のしきい値を超えたら即座に再起動するようにした。つい、遊んでしまう。こういうのを「芸は身を滅ぼす」というのだろうかw (19:15)

気になるのは、その問題自体よりSpotifyの対応なり動向だ。他にも問題や変なところが放置されているから、そのうち手に負えなくなって、「Linuxアプリは止めまーす!」とか言い出しそうな気がしている。それはとてもまずい。。。 まあ、その時でもWeb APIは継続するだろうから、それを使って自分でプレーヤーを作るか、他の対応プレーヤーを使うかだろうか。あとは、ミニプレーヤを純正のwebプレーヤーに繋げることができれば、それが一番いい。

でも、それよりも、Spotify自体が終わりになることが一番怖い。その時はどこへ移ろうか? 消去法でAmazonしかない気はするw あとはDeezer(ここは高いからないけど)などの新手のものかな。

  •   0
  •   1

コメントを書く

名前    

メール 

URL