使用ExpandoMetaClass.enableGlobally()的成本是多少? (Groovy的)

时间:2015-12-24 05:07:50

标签: grails groovy

我想确定我不会因此而导致性能问题。我们正在写一个简单的Money DSL,我被建议打开:

ExpandoMetaClass.enableGlobally()

但是,我无法确切地确定这意味着什么。是在根对象的继承树上启用元类覆盖,还是将它应用于内存中的每个对象类型?

将Expando全局应用于生产实例是否存在风险?

1 个答案:

答案 0 :(得分:4)

Grails已经这样做了,因此所涉及的费用已经发生了:)

此设置会将默认php实施从nodejs/socket.io更改为MetaClassMetaClassImpl由Graeme为Grails编写,以便更轻松地将方法动态添加到元类中,例如。

ExpandoMetaClass

几年前它被添加到Groovy核心。