Java和Groovy性能测试
来源:互联网 发布:6s4g网络突然上不了网 编辑:程序博客网 时间:2024/05/29 21:33
一直使用Java调用Groovy脚本完成一些随时可能调整修改的任务。今天测试了以下性能,还不错。测试代码如下:
Java代码:
public class TestC {
static long fib(long n) {
if (n < 2) return n;
return fib(n - 1) + fib(n - 2);
}
public static void main(String[] args) throws CompilationFailedException,
IOException, InstantiationException, IllegalAccessException {
for (int p = 0; p < 10; p++) {
long k = 0;
long start = System.currentTimeMillis();
for (long i = 0; i < 40; i++) {
k = k + fib(i);
}
System.out.println(System.currentTimeMillis() - start);
//System.out.println(k);
}
System.out.println("=======");
long start = System.currentTimeMillis();
GroovyClassLoader loader = new GroovyClassLoader(
TestC.class.getClassLoader());
Class groovyClass = loader.parseClass(new File("Test.groovy"));
GroovyObject obj = (GroovyObject) groovyClass.newInstance();
System.out.println("Compile and new time use "+(System.currentTimeMillis() - start));
for (int p = 0; p < 10; p++) {
obj.invokeMethod("main", new Object[] {});
}
}
}
Groovy脚本Test.groovy:
class Test {
static long fib(long n) {
if (n < 2) return n
return fib(n - 1) + fib(n - 2)
}
static main(args) {
long k=0;
long start = System.currentTimeMillis();
for(long i=0;i<40;i++){
k = k+fib(i);
};
println(System.currentTimeMillis()-start);
//println k;
}
}
运行结果:
928
913
921
929
931
927
914
927
921
923
=======
Compile and new time use 523
2657
2661
2653
2660
2660
2665
2654
2667
2668
2669
可以看到,编译脚本时花费了500多毫秒,执行时脚本的时长是Java代码的3倍左右。这性能已经相当可以了。而且通过上述代码可以看出,一定要先把脚本编译缓存起来,后面用的时候不用编译了,编译花费时间比较长的。
- Java和Groovy性能测试
- groovy性能测试,groovy和java性能对比
- 性能测试工具HyperPacer的Groovy取样器和While控制器的组合应用
- Java和groovy相互调用
- [转载]Groovy 和 JAVA 比较
- mvn编译java和groovy
- 对比groovy和java不同点。
- JAVA和C++反应式框架性能测试
- Java Statement和PreparedStatement性能测试
- JAVA反射性能测试和应用场景
- java String和Stringbuffer性能测试结果
- Java Statement和PreparedStatement性能测试
- Assert 在Java和Groovy中的区别
- Java解析Groovy和Shell的代码
- 10048---【JMeter】Groovy和BeanShell脚本的性能比较
- groovy-java
- Java程序性能测试
- Java程序性能测试
- 联想 ubuntu14.04无线网卡被禁用的解决办法
- 特征检测详解
- maven项目单元测试时ClassNotFoundException问题
- Tomcat密码爆破小记
- java画矩形
- Java和Groovy性能测试
- 使用Sencha cmd 创建Extjs6.2项目
- jQuery选择器文字攻略
- 设计模式之单例模式
- Spring-获取路径
- c++对C语言的扩展(一)
- python篇1_细枝末节
- CF835D Palindromic characteristics(dp)
- HTML5多媒体素材应用