0

I have a problem when I start Groovy on one of my Linux machines - it takes about 30 seconds to execute very simple command:

groovy -e ""

if I run strace on it, here is what I see where it stops and waits:

mprotect(0x7fae284e0000, 4096, PROT_NONE) = 0
clone(child_stack=0x7fae285dfff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fae285e09d0, tls=0x7fae285e0700, child_tidptr=0x7fae285e09d0) = 62660
futex(0x7fae285e09d0, FUTEX_WAIT, 62660, NULL <unfinished ...>

Is there a way to figure out what it's waiting for and why and how to fix it?

I am running Red Hat 6.3, Groovy Version: 2.2.1 JVM: 1.7.0_25 Vendor: Oracle Corporation OS: Linux

And here is time command:

bin$ time groovy -e ""

real 0m22.255s user 0m26.875s sys 0m2.064s

2
  • The latest version of Groovy being? It helps to have specific version numbers. Are you running the latest package for your distro, the latest stable release, the latest beta, the latest nightly?
    – heavyd
    Commented Apr 8, 2014 at 22:39
  • Groovy Version: 2.2.1 JVM: 1.7.0_25 Vendor: Oracle Corporation OS: Linux Commented Apr 9, 2014 at 14:07

1 Answer 1

0

Reason of groovy's very long startup time (compared to other interpreted languages) is that is has to fire up a JVM for every groovy-command.

You might want to look into GroovyServ. What this does is running a daemon with a JVM in the background the first time you start it. Subsequent calls of groovyclient then use this JVM instead. It promises to be "10 to 20 times faster than regular Groovy".

1
  • I don't think it was the case since the same call works much faster on another server with similar hardware. And java runs faster as well, nowhere near 30 second delays. Commented Mar 1, 2016 at 21:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .