Groovy код становится все быстрее и медленнее при использовании "@CompileStatic"
У меня есть следующий фрагмент кода 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
}
}
Который должен проверять погоду х это число, оканчивающееся на 1,3,7 или 9
Я использую плагин groovy для eclipse, поэтому, когда я хочу запустить код, у меня есть несколько вариантов, я могу запустить его как Groovy Script или как приложение Java. Вот время выполнения.
Groovy Script: 93ms
Java Application: 125ms
Но когда я включаю статическую компиляцию, это происходит
Groovy Script: 0ms
Java Application: 312ms
Я не совсем понимаю,
1. Я думал, что компиляция в Java-приложение должна выполняться быстрее, чем запуск Groovy как скрипта.
2. Почему опция скрипта Groovy становится намного быстрее со статической компиляцией, а Java - более длинной?