Java 执行前如何延期
我试图在Eclipse中创建简单的groovy脚本。 我注意到脚本总是在延迟后执行。大约半秒延迟。同时,一个等价的java代码毫不延迟地执行。在控制台中运行jar文件时也是如此Java 执行前如何延期,java,eclipse,groovy,Java,Eclipse,Groovy,我试图在Eclipse中创建简单的groovy脚本。 我注意到脚本总是在延迟后执行。大约半秒延迟。同时,一个等价的java代码毫不延迟地执行。在控制台中运行jar文件时也是如此 原因是什么?我证实了我的预感。在Java中运行简单的hello world程序时: public class Main { public static void main(String[] args) { System.out.println("Hello World"); }
原因是什么?我证实了我的预感。在Java中运行简单的hello world程序时:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
使用-XX:+TraceClassLoading
,我可以看到它在输出之前加载了415个类
但对于groovy中的相同程序:
class GMain {
public static void main(String[] args) {
println "Hello World"
}
}
它在输出前加载1665个类
类加载需要花费大量时间(因为它通常包括硬盘I/O),所以这至少可以解释较长延迟的一部分。但一般来说,groovy运行时只是在启动时做得更多,所以需要更长的时间;它有更多的类要加载(所有groovy内部),如果用@groovy.transform.CompileStatic?@daggett more注释groovy类,它将加载1769,为了完成它,您能否给出groovy和java版本,并尝试使用groovy all only lib和groovy all indy。提前谢谢@达吉特:可能不会有太大区别。此外,我不是一个标杆服务。