启动时间慢

时间:2012-02-08 21:21:43

标签: ubuntu groovy

有没有办法加快Groovy的启动时间? (除了使用某种单独运行的Groovy进程,如已建议的那样)。

我并不关心执行时间,但是启动缓慢使得无法为我开发Groovy。

在我的机器上使用Groovy和Ruby启动和运行空脚本之间的简单比较:

$ time groovy -e ""
real   0m5.678s
user   0m6.468s
sys    0m0.456s

$ time ruby -e ""
real   0m0.023s
user   0m0.020s
sys    0m0.004s

我使用存储库中的标准软件包运行Ubuntu 11.10。

$ groovy -v
Groovy Version: 1.7.10 JVM: 1.6.0_23

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10"

$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

2 个答案:

答案 0 :(得分:6)

这是JVM开销和groovy自己的启动时间的组合。将-noverify标志添加到JVM选项会关闭字节码验证,这会产生明显的差异。将JAVA_OPTS环境变量设置为-noverify以使其能够使用它。

还有一个项目是在后台运行服务器进程来解决这个问题:http://kobo.github.com/groovyserv/

答案 1 :(得分:1)

JVM本身有很多启动开销,最适合长时间运行的进程。

即使您说“除了使用某种单独运行的Groovy进程,因为我已被建议”,您可能需要查看Nailgun

6秒似乎过度了。以下是我在同一测试中得到的结果:

Ubuntu 11.04

$ time groovy -e ""
real     0m0.588s
user     0m0.484s
sys      0m0.056s

Mac OS X 10.7.2

$ time groovy -e ""
real    0m0.856s
user    0m1.114s
sys     0m0.125s

$ groovy -version
Groovy Version: 1.8.5 JVM: 1.6.0_29 Vendor: Apple Inc. OS: Mac OS X

$ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)