README の例に従って匿名クラスを使用してステート マシンを動的に生成し始めたときに気付き始めたstate_machine gemのメモリ リークを追跡しようとしています。この要点は、私が最初に問題を発見した方法を示しています。
この gist にまとめたステート マシンの gem でヘルパー メソッドを定義する方法に問題を絞り込むことができました。
私の質問は、define_method
匿名クラスがガベージ コレクションを取得しない原因となるブロックの動作は何ですか? これらの 3 行 (18 ~ 20) にコメントを付けると、問題が解決するようです。
ご指摘ありがとうございます。
更新: Ruby 2.0.0p195 を使用しています