Project

General

Profile

バグ #941

画像のメモリキャッシュ開放時に大量にThreadが作成されて、短時間フリーズする

Added by toshi_a 初音 almost 4 years ago. Updated almost 4 years ago.

Status:
終了
Priority:
通常
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

問題

現在のPhotoModelは、画像を UserConfig[:photo_forget_time] 秒(未指定なら60秒)メモリ上に記録する(/core/lib/retriever/mixin/photo_mixin.rb)。
Pixbufも、/core/mui/gtk_photo_pixbuf.rbでメモリ上から一定時間で参照を切るようになっている。

これらの開放のためにReserverを使う実装を行ったせいで、起動してから1分の時点でおよそ画像枚数分のThreadが作られ、フォロー・フォロワー数によっては数秒程度CPU使用率が100%になり、フリーズする。また、expireが十分短いため、起動直後に限らず、あるタイムラインを初めて表示した1分後などにもこの問題が発生することがある。

解決策

まずThreadをあまりにも作りすぎることが問題なので、Reserverを使わないようにするか、同様の仕組みを使ってもThreadを作らないようにする。
開放処理をPhotoMixinのインスタンスが行うと融通が利きにくい気がするので、キャッシュは以前のように大域的に面倒を見るようにしてもいいかも。

#1

Updated by toshi_a 初音 almost 4 years ago

  • Status changed from 新規 to 終了

Also available in: Atom PDF