在编译代码时,Clojure编译器会多次不必要地调用Method.getMethod(...),例如。
gen.invokeStatic(Type.getType(Long.class), Method.getMethod("Long valueOf(long)"));
似乎是这样的
a) 这些getMethod调用实际上返回等效的不可变常量值
b) getMethod相对昂贵(执行字符串分析和相当多的对象分配)
c) 在编译典型的Clojure代码期间,这些调用非常常见
建议增强方案是将所有这些getMethod调用替换为常量静态值。这应该会显著提高编译性能而不会影响行为。