Project

General

Profile

最適化 #564

Updated by toshi_a 初音 almost 7 years ago

実装しているとメモリリークするプラグインを特定する

h1. 導入済みプラグインの取得方法

以下の方法で導入されているプラグインのインスタンスを取得できる。ただし、現在のdevelopブランチにはバグで「.rb」が末尾についたスラッグのプラグインが生成されてしまう問題があるのでrejectを使う。
<pre>
Plugin.instances.reject{ |x| x.to_s.end_with?(".rb") }
</pre>

h1. 依存するプラグイン

プラグインには依存関係があり、 *親プラグインがロードされないと子プラグインはロードされない* 。必ず --plugin オプションには親プラグインも同時に指定する(「--plugin=home_timeline」は誤り。「--plugin=gui,gtk,home_timeline」とする)。
依存関係はspecファイルによってのみ定義されていて、specファイルの内容は以下のようなコードで取得できる
<pre>
plugins[0].instance_eval{ @spec }
</pre>

h1. ロードするプラグインを限定する

特定のプラグインだけロードしたい場合は、「--plugin」オプションでスラッグを指定する。複数のプラグインを指定する場合はカンマで区切る。--pluginを二つ以上指定することはできない。
<pre>
./mikutter.rb --plugin="gui,gtk,rest,streaming,home_timeline,memory_profiler" --debug
</pre>
この方法でプラグインスラッグを指定すると、そのスラッグにマッチしないプラグインはロードされない。

h1. バージョン


0.2.2(develop ブランチ)の新機能なので、他のバージョンでは計測できない。

h1. その他


ぺんぎんさんがんばれ
問題がわかった/わからなかったら、Twitterじゃなくてこっちで教えてください。
質問もIRCかこのチケットのコメントにしてください。

Back