Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time 使用“Groovy”时,Groovy代码变得越来越慢@CompileStatic“;_Time_Groovy_Static Compilation - Fatal编程技术网

Time 使用“Groovy”时,Groovy代码变得越来越慢@CompileStatic“;

Time 使用“Groovy”时,Groovy代码变得越来越慢@CompileStatic“;,time,groovy,static-compilation,Time,Groovy,Static Compilation,我有以下几段Groovy代码 class Test { // @groovy.transform.CompileStatic static main(args) { long start = System.currentTimeMillis() def x = "3967" println x ==~ /[0-9]+([1379])$/ println System.currentTimeMillis()-st

我有以下几段Groovy代码

class Test 
{
//  @groovy.transform.CompileStatic
    static main(args) 
    {
        long start = System.currentTimeMillis()
        def x = "3967"
        println x ==~ /[0-9]+([1379])$/
        println System.currentTimeMillis()-start
    }
}
用来测试x是一个以1,3,7,或9结尾的数字

我正在使用eclipse的groovy插件,因此当我想要运行代码时,我有几个选项,可以将其作为groovy脚本或Java应用程序运行。以下是运行时

Groovy Script: 93ms
Java Application: 125ms
但当我启用静态编译时,就会发生这种情况

Groovy Script: 0ms
Java Application: 312ms 
我很困惑,
1.我认为编译到Java应用程序应该比作为脚本运行Groovy更快。

2.为什么Groovy脚本选项在静态编译时会变得更快,而Java脚本会变得更长?

Groovy即使作为脚本也会被编译成字节码。这必须与eclipse处理编译和执行的方式有关。在运行测试之前,你做了任何预热吗?扩展@ WillP的评论,模仿<代码>测试。Groovy < /C> >代码>测试。java < /C> >并排运行,可能分别使用<代码> Groovyc < /C>和 javac < /C> >,也可以考虑使用<代码>系统。以获得更准确的计时。而且,在JVM启动后立即测量单个事物的单个调用的错误级别将是巨大的