プロジェクト

全般

プロフィール

バグ #941

完了

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

toshi_a 初音 さんが7年以上前に追加. 7年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:

説明

問題

現在の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のインスタンスが行うと融通が利きにくい気がするので、キャッシュは以前のように大域的に面倒を見るようにしてもいいかも。

他の形式にエクスポート: Atom PDF