importgroovy.lang.GroovyClassLoader;importgroovy.lang.GroovyObject;importgroovy.lang.GroovyShell;importgroovy.lang.Script;importgroovy.util.GroovyScriptEngine;importgroovy.util.ResourceException;importgroovy.util.ScriptException;importjava.io.File;importjava.io.IOException;/*** Created by Jxy on 2018/12/24 11:28
* 测试GroovyShell、GroovyClassLoader、GroovyScriptEngine 性能*/
public classGroovyIntoJavaDemo1 {//测试次数
private static final int num = 10000;public static void main(String[] args) throwsIOException, ResourceException, ScriptException {/*GroovyClassLoader*/
long start =System.currentTimeMillis();
GroovyClassLoader loader= newGroovyClassLoader();
Class aClass= loader.parseClass(new File("src/Groovy/com/baosight/groovy/CycleDemo.groovy"));try{
GroovyObject instance=(GroovyObject) aClass.newInstance();
instance.invokeMethod("cycle",num);
}catch(InstantiationException e) {
e.printStackTrace();
}catch(IllegalAccessException e) {
e.printStackTrace();
}long end = System.currentTimeMillis()-start;/*GroovyShell*/
long start1 =System.currentTimeMillis();new GroovyShell().parse( new File( "src/Groovy/com/baosight/groovy/CycleDemo.groovy") )
.invokeMethod("cycle",num);long end1 = System.currentTimeMillis()-start1;/*GroovyScriptEngine*/
long start2 =System.currentTimeMillis();
Class script= new GroovyScriptEngine("src/Groovy/com/baosight/groovy/")
.loadScriptByName("CycleDemo.groovy");try{
Script instance=(Script) script.newInstance();
instance.invokeMethod ("cycle",newObject[]{num});
}catch(InstantiationException e) {
e.printStackTrace();
}catch(IllegalAccessException e) {
e.printStackTrace();
}long end2 = System.currentTimeMillis()-start2;
System.out.println(" GroovyClassLoader时间:"+end );
System.out.println(" GroovyShell时间:"+end1 );
System.out.println(" GroovyScriptEngine时间:"+end2 );
}
}