GroovyClassloader 행동의 이해, 루프에서GroovyClassloader 행동
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("groovy");
GroovyScriptEngineImpl groovyEngineImpl = (GroovyScriptEngineImpl) engine;
,
for (int i = 0; i < 10; i++) {
long startTime = System.currentTimeMillis();
classLoader = new GroovyClassLoader(groovyEngineImpl.getClassLoader().getParent());
fileName = fileName + i;
Class groovyClass = classLoader.parseClass(s,fileName);
long endTime = System.currentTimeMillis();
System.out.println("Total elapsed time in execution o " + (endTime-startTime));
startTime = System.currentTimeMillis();
groovyClass = classLoader.parseClass(s,fileName);
endTime = System.currentTimeMillis();
System.out.println("Second Time Total elapsed time in execution o " + (endTime-startTime));
}
나는 위의 코드에 대한 몇 가지 질문이 있습니다 내가 'for 루프에서
- 가 새 groovyclassloder 객체 만들기 및 groovy 스크립트를 두 번 파싱합니다. 루프가 두 번째 반복하고 groovyscript를 다시 구문 분석하려고하면 은 무엇이 발생합니까?
- 다른 개체가 만들어 질 때 두 번째로 발생할 것입니다. 클래스 로더가 클래스 패스에서 클래스를 가져 오거나 다시 클래스 파일을 다시 컴파일 할 수 있습니까?
- 재 컴파일이 트리거 될 때 Groovy는 소스가 인 것을 어떻게 알 수 있습니까?
를 클래스를 다시 컴파일해야합니다 가서 소스 코드를 살펴 보지 않겠습니까? –
@ tim_yates 안녕하세요, 시간이 내가 도울 수있는 날, 내가 소스 코드에 갔다 – anish