这两天看 Groovy 1.7 beta2 和 1.6.5 都出来了,两个版本都可以从这里 下载到。
简单的对比了在 Java 代码中调用 Groovy 脚本的初始化时间 ,1.7b2 比 1.6.5 慢了将近 25%。
测试代码如下:
public class GroovyTest {
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
// init Groovy Binding
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
Object o = shell.evaluate("true");
long time2 = System.currentTimeMillis();
System.out.println("\n[Time Cost ] : " + (time2-time1) );
}
}
用 1.6.5 的 jar 执行时间在 750ms 左右;而 1.7b2 环境下,则需要 1000ms 左右。
看来性能的问题始终还是困扰着 Groovy,不能让人满意。
2009-10-14 更新:
JohnnyJian 回复说上面比较的不是“性能”,而是“启动时间”,于是也比较下执行原生的 Groovy 脚本的性能。
这里直接参考了这篇文章的内容 ,该文比较了Java, Lua, Groovy, Python, Ruby 等多种语言的性能。
在我的机器上测试文中 Groovy 版的脚本,1.7b2 下执行时间:8.5 s; 1.6.5 下:6.781 s,结果也是慢 25% 左右。
2009-10-23 更新:
Groovy 1.7.0 发布了,又运行了上面提到的脚本测了下性能,5次中最好的成绩是 8.36s,还是比 1.6.x 下慢很多。
只能希望 Groovy 1.8.x 里面会有比较大的改进了。