Clojure函数调用性能

时间:2015-01-21 16:23:52

标签: clojure

如果Clojure函数存储为vars,这是否意味着与例如Clojure函数相比,执行它们还有一个额外的查找Java中的静态方法?

如果是这样,有没有办法在Clojure中定义一个函数,以便在没有性能损失的情况下调用它? (或者如果没有,那么如何避免性能损失?)

1 个答案:

答案 0 :(得分:2)

是的,需要对var进行derefed以检索关联的函数,因此与直接静态方法调用相比,还有额外的开销(deref,cast,invoke)。

有一个open enhancement ticket建议更改Clojure本身以改进调用性能以及在评论中进一步提出的解决方法建议。