Groovy Mixin用法内存泄漏

时间:2013-04-02 15:40:29

标签: memory-leaks groovy mixins

我正在使用Groovy 1.7.6,我们有一个使用基本mixin的类(为此目的简化):

class MixinClass {
    def self
    def init(me){
        this.self = me
    }
}

我将这个mixin添加到另一个类(也简化),如下所示:

@Mixin(MixinClass)
class FunctionEntry  {

    def FunctionEntry(){
        init(this)
    }

..

以上基本上只是将对FunctionEntry类实例的引用传递给@mixin以供参考(尽管这可能是任何数据)

如果我现在运行测试,并且循环数千次调用new FunctionEntry()我最终会收到Heap OOM错误(注意,循环实际上只是实例化对象,它不会将它存储在任何地方)。 / p>

调试堆之后我发现问题是MixinInMetaClass - 我的结论是,即使我已经丢弃了对象实例,MixinInMetaClass也会保留数据而不会被收集。

有没有人遇到过这个问题?这是一个已知的Groovy 1.7.6问题吗?我的印象是Mixins可以保持状态,但是这个证据似乎表明每当我创建一个对象时,MixinInMetaClass就会对对象数据进行操作。

0 个答案:

没有答案