Медленное время запуска - PullRequest
       9

Медленное время запуска

3 голосов
/ 09 февраля 2012

Есть ли способ ускорить время запуска 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 ]

6 голосов
/ 09 февраля 2012

Это комбинация издержек JVM плюс время запуска groovy.Добавление флага -noverify к параметрам JVM отключает проверку байт-кода, что заметно.Задайте для переменной среды JAVA_OPTS значение -noverify, чтобы использовать его в Groovy.

Также существует проект для запуска процесса сервера в фоновом режиме, чтобы обойти это:

1 голос
/ 09 февраля 2012

Сама JVM имеет много накладных расходов при запуске и лучше всего подходит для длительных процессов.

Даже если вы сказали: «За исключением использования какого-то отдельного запущенного процесса Groovy, как я уже говорил», выВозможно, стоит взглянуть на Пистолет для ногтей .

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...