Szybsze uruchamianie JRuby

Opublikowane przez Jarosław Zabiełło Wed, 15 Oct 2008 01:14:00 GMT

Osoby często uruchamiające w konsoli JRuby’ego pewnie się trochę denerwują opoźnieniami związanymi z koniecznością załadowania za każdym razem JVM (wirtualnej maszyny Javy). Dzięki serwerowi Nailgun, JVM jest trzymana w pamięci i JRuby jest uruchamiany natychmiast, bez opóźnień. Instalacja jest prosta i opisana na Wiki.

Kompilację Nailguna dla JRuby najwygodniej zrobić za pomocą ant'a:

ant jruby-nailgun

Następnie należy uruchomić serwer

jruby --ng-server

(Serwer domyślnie nasłuchuje na wszystkich interfejsach i na porcie 2113, i jest odpalany na prawach usera który, wykonał tą komendę.)

Od tego momentu wirtualna maszyna Javy ładowana jest do pamięci i aby JRuby z tego korzystał należy uruchamiać go z opcją --ng. Rozwiązanie nadaje się świetnie do częstego uruchamiania skryptów. Znika zupełnie efekt opóźnienia związany z koniecznością ładowania JVM przy każdym uruchomieniu skryptu JRuby.

Małe porównanie:

$ time jruby --ng -e "puts 1"
1
real    0m0.049s
user    0m0.010s
sys     0m0.000s

$ time jruby  -e "puts 1"
1
real    0m0.549s
user    0m0.530s
sys     0m0.060s

Tagi , ,  | 8 comments