Project

General

Profile

Actions

最適化 #927

closed

バグ #925: mikutterがメモリを大量に消費することがある

一度も表示されたことのないGtk::TimeLineに追加されたiterがGCされない

Added by Osamu Koga almost 8 years ago. Updated almost 8 years ago.

Status:
終了
Priority:
通常
Target version:
Start date:
2016-11-09
Due date:
% Done:

0%

プラグイン名:

Description

#925の

>>> GC.start;ObjectSpace.each_object(Gtk::TimeLine).reject{|t| t.destroyed?}.map(&:size).sort.reverse
[3959, 1243, 1041, 383, 206, 200, 200, 200, 200, 187, 182, 119, 117, 108, 97, 84, 76, 73, 60, 60, 59, 59, 58, 56, 52, 51, 44, 41, 41, 40, 40, 39, 38, 37, 35, 35, 34, 34, 29, 28, 27, 27, 27, 27, 25, 24, 24, 23, 23, 23, 22, 22, 21, 21, 20, 20, 14, 13, 12, 10, 8, 8, 7, 6, 5, 5, 5, 5, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

に関して、起動時から1回も表示されていないGtk::TimeLineにMessageを追加すると、@remover_queueに追加されないためiterがずっと残り続けます。


Files

mikutter-memory-b1a15108.png (172 KB) mikutter-memory-b1a15108.png 修正前 toshi_a 初音, 2016-11-09 23:15
mikutter-memory-e4984337.png (178 KB) mikutter-memory-e4984337.png 修正後 toshi_a 初音, 2016-11-09 23:15
Actions #1

Updated by Osamu Koga almost 8 years ago

  • Parent task set to #925
Actions #2

Updated by Osamu Koga almost 8 years ago

  • Status changed from 新規 to パッチ適用待ち
  • Assignee set to toshi_a 初音
Actions #3

Updated by toshi_a 初音 almost 8 years ago

たしかにこれは良くないですね。こっちでも実際の効果を測定したいと思うんですが、なんか測定したりしました?

多分、その出力の最大が全部200になるとかですよね

Actions #4

Updated by toshi_a 初音 almost 8 years ago

全く同じ時間帯に、同時に e4984337 適用前後のmikutterを起動して様子を見てみました。
計測は、ホームタイムラインを表示しながら、抽出タブ(データソース: 全てのメッセージ・条件: 指定なし)をバックグラウンドに開いて、できるだけUIを触らないようにして行いました。

なんか突然増えている謎の時間帯がありますが、Gtk::TreeIterとGdk::MiraclePainterのリークが改善されていて、数が一番多いStringも一定のラインで増加が止まっているように見えます。
一方で、実メモリは550MBと549MB消費していて、ほとんど差がないです。 #925 で言われているように、少量のPixbufなどのオブジェクトの参照が残っていて、メモリを多く消費しているのかも。

ともかくこの修正によってかなり改善することがわかったのでmergeしようと思います。

Actions #5

Updated by toshi_a 初音 almost 8 years ago

  • Status changed from パッチ適用待ち to 終了
Actions

Also available in: Atom PDF