SlideShare a Scribd company logo
1 of 23
Download to read offline
GroovyServ
                高速起動Groovy
                JGGUG スペシャルG*ワークショップ

                      2010/7/24
                  NTTソフトウェア株式会社
                       上原潤二

2010年7月27日火曜日
自己紹介
                上原潤二
                NTTソフトウェア株式会社
                JGGUG運営員
                ブログ「Grな日々」
                「Grails徹底入門」2章執筆
                kobo(工房)プロジェクト
                  groovyserv, kobo-commons, String#tr()
                  目的: 日本発のGroovyへの貢献
2010年7月27日火曜日
目次
            概要編                       使ってみよう編
                GroovyServって何?         インストール
                起動が速いと何がうれしいの?         使い方
                どのぐらい速い?(Win,Mac)      groovyclient
                GroovyServ構成図          groovyserver
                通常のGroovy実行            デモ
                スクリプト開発               その他編
                効果が薄い用途                制約について
                                       セキュリティについて
                                       ロードマップ
                                       まとめ



2010年7月27日火曜日
GroovyServ
                高速起動Groovy

                  <概要編>

2010年7月27日火曜日
GroovyServって何?
                スクリプト起動速度が爆速に!
                (x10 ∼20)
                Groovy処理系を常駐起動(groovyserver)
                Groovyスクリプト実行は、処理を
                groovyserverに移譲する小さなCプログラム
                で行う(groovyclient)
                 groovyserver-client間はsocket通信


2010年7月27日火曜日
起動が速いと何がうれしいの?
                dankogai氏曰く
                       そんなわけで、現存の言語では最も美人な Scala な
                       のだが、Scala の最大の特長である「Java上で動
                       く」というのは、最大の欠点でもある。(中略)最も
                       それを強く感じるのは、Scalaをスクリプトとして
                       使ったときだろう。

                       たとえば、上の Hello, World! のサンプルは、今時の
                       パソコンでも実行に一秒を要する。Java VMを立ち
  起動0.27秒じゃ            上げ、Scala環境を初期化するのにそれだけかかるの
   遅いyo!!              だ。(中略) コンパイルした場合でも、0.27秒。ワン
                       ライナーを書くのにも最適な Scala なのに(後略)

                       http://blog.livedoor.jp/dankogai/archives/51275491.html
2010年7月27日火曜日
どのぐらい速い?(Win編)
                   groovy -e println hello world

                                                      実行時間(sec)                        比率

                     normal groovy                          3.041                      1.0

                    Installer版groovy                        1.262                      2.4

                    groovyclient(C版)                        0.155                      19.6

                 groovyclient(Ruby版)                        0.193                      15.8


                •Groovy 1.7.3, GroovyServ 0.4-SNAPSHOT, WinXP SP3,Core2Duo 2GHz,JDK1
                •timeコマンドでreal時間を計測。10回実行した平均。

2010年7月27日火曜日
どのぐらい速い?(Mac編)
                  groovy -e println hello world

                                                       実行時間(sec)                       比率

                     normal groovy                           1.112                     1.0

                Mac Ports版groovy(1.7.2)                      0.321                     3.5

                   groovyclient(C版)                         0.031                     35.8

                 groovyclient(Ruby版)                         0.041                     27.1

          •Groovy 1.7.3, GroovyServ 0.4-SNAPSHOT, MacOSX 10.6.3, MacBook Core2duo 2.53GHz, JDK1.6.0u20
          •timeコマンドでreal時間を計測。10回実行した平均。


2010年7月27日火曜日
GroovyServ構成図
                    Shell Environment                                 User Groovy
                                                                         Srcipt
                  C
                   LA
                       SS
                  cm

                         PA

                                                                 System.in
                           TH
                    d.




                                                                System.out
                             lin

                               en
                                 e


                                  v

                                                                SYstem.err
                                   ar
                                      gs




                  Ctrl-C              groovyclient      TCP/IP
                                                                      groovyserver
                            i   n
                       s td
                         de t
                       st d o u
                           rr




                                                                             JavaVM
                          st




                                    exit status
                                                  File System

                                                  Authentication
                                                   Cookie File



2010年7月27日火曜日
通常のGroovy実行
                            User Groovy
                   Shell Environment
                                          Srcipt
                 C
                  LA


                                                     System.in
                      SS
                 cm

                        PA

                                                    System.out
                          TH
                   d.




                                                    SYstem.err
                            lin

                              en
                                e


                                 v
                                  ar
                                     gs




                 Ctrl-C                   groovy


                           i   n
                      s td
                        de t
                      st d o u




                                           JavaVM
                          rr
                         st




                        exit status
                                                    File System




2010年7月27日火曜日
スクリプト開発
                Groovyは本来、PerlやRubyにも拮抗しうる
                強力なスクリプト言語
                ワンライナー
                フィルタ、パイプ
                コンパイル不要
                でも、レスポンス悪いとやる気が出ない
                トライ&エラーを繰り返すため
                そこで、GroovyServですよ

2010年7月27日火曜日
効果が薄い用途
                サーバ開発
                 起動が頻繁ではない
                GUIアプリケーション
                 起動が頻繁ではない
                CUIアプリでシェルのように起動して操作するもの
                 起動が頻繁ではない
                cronで定期的に起動
                 起動レスポンスが重要ではない


2010年7月27日火曜日
GroovyServ
                高速起動Groovy

                <使ってみよう編>

2010年7月27日火曜日
インストール
                http://kobo.github.com/groovyserv




                展開したフォルダのbinにPATHを通す
                HOMEを設定する(0.3まで)
                GROOVY_HOMEを確認
                好みにより、aliasを設定
                (DOS窓ではdoskeyで設定可)



2010年7月27日火曜日
使い方
                コマンド、2つ。
                groovyclient
                groovyserver




2010年7月27日火曜日
groovyclient
                groovyコマンドの代わり
                 初回起動時にgroovyserverがバックグラウ
                 ンド起動
                 引数・オプションはgroovyserverにそのま
                 ま渡される
                エイリアス/マクロ定義が便利
                 alias groovy=groovyclient (U*IX,cygwin)
                 doskey groovy=groovyclient (windows)
2010年7月27日火曜日
groovyserver
                groovyserv本体
                使い方
                 groovyserver             明示的な起動
                 groovyserver -r
                 groovyserver -k
                                      再起動
                                          停止          }  win/非cygwin
                                                           で利用不可

                 groovyserver -v          詳細ログ
                  ログ出力先:        /.groovy/groovyserv/groovyserver.log


2010年7月27日火曜日
デモ




2010年7月27日火曜日
GroovyServ
                高速起動Groovy

                 <その他編>

2010年7月27日火曜日
制約について
                CWD問題
                 異なるカレントディレクトリを持
                 つような複数スクリプトを同時に
                 は実行できない
                非cygwin版では-r,-kが利用できない
                Permgen問題


2010年7月27日火曜日
セキュリティについて
                何もしないと何でも外部から実行でき
                てしまうため防御が必要
                 秘密のcookieファイルによる認証
                   ファイルシステムベース
                 localhostからの接続のみに制限
                どうしても分散実行したい場合、今のと
                ころssh port forwarding + NFSで。


2010年7月27日火曜日
ロードマップ
                Groovyserv 0.4リリース…8/4
                 多くのbugfix、win設定簡易化
                将来希望
                 Native Installerに組み込んだ上で
                 Windows Installer版で提供
                   groovy --with-groovyserv


2010年7月27日火曜日
まとめ
                groovyservをよろしく
                 是非お試しください
                 バグ報告大歓迎です




2010年7月27日火曜日

More Related Content

What's hot

Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Uehara Junji
 
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015Groovy Shell Scripting 2015
Groovy Shell Scripting 2015Uehara Junji
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUehara Junji
 
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1Uehara Junji
 
C#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + ClooC#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + Clooaokomoriuta
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)Uehara Junji
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222Nobuhiro Sue
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Takefumi MIYOSHI
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
WebRTCがよく分からないから調べて試してみた
WebRTCがよく分からないから調べて試してみたWebRTCがよく分からないから調べて試してみた
WebRTCがよく分からないから調べて試してみたtoru tom
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしようYasuhiro Yoshimura
 
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
Perlワンライナーで全てのモジュールにuse v5.8.0つける!Perlワンライナーで全てのモジュールにuse v5.8.0つける!
Perlワンライナーで全てのモジュールにuse v5.8.0つける!debug-ito
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualYuji Kubota
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecodeMasanori Kado
 

What's hot (20)

Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
 
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
 
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
 
C#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + ClooC#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + Cloo
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
Groovyの紹介20130323
Groovyの紹介20130323Groovyの紹介20130323
Groovyの紹介20130323
 
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01
 
GContractsの基礎
GContractsの基礎GContractsの基礎
GContractsの基礎
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
WebRTCがよく分からないから調べて試してみた
WebRTCがよく分からないから調べて試してみたWebRTCがよく分からないから調べて試してみた
WebRTCがよく分からないから調べて試してみた
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
 
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
Perlワンライナーで全てのモジュールにuse v5.8.0つける!Perlワンライナーで全てのモジュールにuse v5.8.0つける!
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
 
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasualOpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecode
 

Similar to GroovyServ concept, how to use and outline.

Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309Uehara Junji
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれDNA Data Bank of Japan center
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet ServicesNaoto Gohko
 
サンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングサンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングYikei Lu
 
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。Masahito Zembutsu
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたkyon mm
 
20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会Toshikazu Seto
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件yaegashi
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 
スレッドダンプの読み方
スレッドダンプの読み方スレッドダンプの読み方
スレッドダンプの読み方Funato Takashi
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovyirof N
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタl_b__
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- 100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- Naoto MATSUMOTO
 
Serviceability Toolsの裏側
Serviceability Toolsの裏側Serviceability Toolsの裏側
Serviceability Toolsの裏側Yasumasa Suenaga
 

Similar to GroovyServ concept, how to use and outline. (20)

Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309Groovy kisobenkyoukai20130309
Groovy kisobenkyoukai20130309
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
 
Open VZ
Open VZOpen VZ
Open VZ
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
サンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミングサンドボックス化によるセキュアなプログラミング
サンドボックス化によるセキュアなプログラミング
 
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
 
20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
スレッドダンプの読み方
スレッドダンプの読み方スレッドダンプの読み方
スレッドダンプの読み方
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovy
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタ
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- 100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
 
Serviceability Toolsの裏側
Serviceability Toolsの裏側Serviceability Toolsの裏側
Serviceability Toolsの裏側
 

More from Uehara Junji

Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418Uehara Junji
 
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsJJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsUehara Junji
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development lifeUehara Junji
 
Groovy 1.8の新機能について
Groovy 1.8の新機能についてGroovy 1.8の新機能について
Groovy 1.8の新機能についてUehara Junji
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Uehara Junji
 
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Uehara Junji
 
Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEEasy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEUehara Junji
 
Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)Uehara Junji
 
Groovy, Transforming Language
Groovy, Transforming LanguageGroovy, Transforming Language
Groovy, Transforming LanguageUehara Junji
 
Jggug Nagoya 20090925 Groovy
Jggug Nagoya 20090925 GroovyJggug Nagoya 20090925 Groovy
Jggug Nagoya 20090925 GroovyUehara Junji
 
G*WS 3rd Lightning talk
G*WS 3rd Lightning talkG*WS 3rd Lightning talk
G*WS 3rd Lightning talkUehara Junji
 
Groovy Now And Future
Groovy Now And FutureGroovy Now And Future
Groovy Now And FutureUehara Junji
 
Seasar Conference2008 Grails(Final)
Seasar Conference2008 Grails(Final)Seasar Conference2008 Grails(Final)
Seasar Conference2008 Grails(Final)Uehara Junji
 
Groovy Conference2008 Nttsoft
Groovy Conference2008 NttsoftGroovy Conference2008 Nttsoft
Groovy Conference2008 NttsoftUehara Junji
 

More from Uehara Junji (16)

Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418Shibuya JVM Groovy 20150418
Shibuya JVM Groovy 20150418
 
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/GrailsJJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
 
Java x Groovy: improve your java development life
Java x Groovy: improve your java development lifeJava x Groovy: improve your java development life
Java x Groovy: improve your java development life
 
Groovy 1.8の新機能について
Groovy 1.8の新機能についてGroovy 1.8の新機能について
Groovy 1.8の新機能について
 
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
Let's go Developer 2011 sendai Let's go Java Developer (Programming Language ...
 
Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224Jggug ws 15th LT 20110224
Jggug ws 15th LT 20110224
 
Easy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVEEasy Going Groovy 2nd season on DevLOVE
Easy Going Groovy 2nd season on DevLOVE
 
Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)
 
Clojure
ClojureClojure
Clojure
 
Groovy, Transforming Language
Groovy, Transforming LanguageGroovy, Transforming Language
Groovy, Transforming Language
 
Jggug Nagoya 20090925 Groovy
Jggug Nagoya 20090925 GroovyJggug Nagoya 20090925 Groovy
Jggug Nagoya 20090925 Groovy
 
Lisp Builder
Lisp BuilderLisp Builder
Lisp Builder
 
G*WS 3rd Lightning talk
G*WS 3rd Lightning talkG*WS 3rd Lightning talk
G*WS 3rd Lightning talk
 
Groovy Now And Future
Groovy Now And FutureGroovy Now And Future
Groovy Now And Future
 
Seasar Conference2008 Grails(Final)
Seasar Conference2008 Grails(Final)Seasar Conference2008 Grails(Final)
Seasar Conference2008 Grails(Final)
 
Groovy Conference2008 Nttsoft
Groovy Conference2008 NttsoftGroovy Conference2008 Nttsoft
Groovy Conference2008 Nttsoft
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Recently uploaded (7)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

GroovyServ concept, how to use and outline.

  • 1. GroovyServ 高速起動Groovy JGGUG スペシャルG*ワークショップ 2010/7/24 NTTソフトウェア株式会社 上原潤二 2010年7月27日火曜日
  • 2. 自己紹介 上原潤二 NTTソフトウェア株式会社 JGGUG運営員 ブログ「Grな日々」 「Grails徹底入門」2章執筆 kobo(工房)プロジェクト groovyserv, kobo-commons, String#tr() 目的: 日本発のGroovyへの貢献 2010年7月27日火曜日
  • 3. 目次 概要編 使ってみよう編 GroovyServって何? インストール 起動が速いと何がうれしいの? 使い方 どのぐらい速い?(Win,Mac) groovyclient GroovyServ構成図 groovyserver 通常のGroovy実行 デモ スクリプト開発 その他編 効果が薄い用途 制約について セキュリティについて ロードマップ まとめ 2010年7月27日火曜日
  • 4. GroovyServ 高速起動Groovy <概要編> 2010年7月27日火曜日
  • 5. GroovyServって何? スクリプト起動速度が爆速に! (x10 ∼20) Groovy処理系を常駐起動(groovyserver) Groovyスクリプト実行は、処理を groovyserverに移譲する小さなCプログラム で行う(groovyclient) groovyserver-client間はsocket通信 2010年7月27日火曜日
  • 6. 起動が速いと何がうれしいの? dankogai氏曰く そんなわけで、現存の言語では最も美人な Scala な のだが、Scala の最大の特長である「Java上で動 く」というのは、最大の欠点でもある。(中略)最も それを強く感じるのは、Scalaをスクリプトとして 使ったときだろう。 たとえば、上の Hello, World! のサンプルは、今時の パソコンでも実行に一秒を要する。Java VMを立ち 起動0.27秒じゃ 上げ、Scala環境を初期化するのにそれだけかかるの 遅いyo!! だ。(中略) コンパイルした場合でも、0.27秒。ワン ライナーを書くのにも最適な Scala なのに(後略) http://blog.livedoor.jp/dankogai/archives/51275491.html 2010年7月27日火曜日
  • 7. どのぐらい速い?(Win編) groovy -e println hello world 実行時間(sec) 比率 normal groovy 3.041 1.0 Installer版groovy 1.262 2.4 groovyclient(C版) 0.155 19.6 groovyclient(Ruby版) 0.193 15.8 •Groovy 1.7.3, GroovyServ 0.4-SNAPSHOT, WinXP SP3,Core2Duo 2GHz,JDK1 •timeコマンドでreal時間を計測。10回実行した平均。 2010年7月27日火曜日
  • 8. どのぐらい速い?(Mac編) groovy -e println hello world 実行時間(sec) 比率 normal groovy 1.112 1.0 Mac Ports版groovy(1.7.2) 0.321 3.5 groovyclient(C版) 0.031 35.8 groovyclient(Ruby版) 0.041 27.1 •Groovy 1.7.3, GroovyServ 0.4-SNAPSHOT, MacOSX 10.6.3, MacBook Core2duo 2.53GHz, JDK1.6.0u20 •timeコマンドでreal時間を計測。10回実行した平均。 2010年7月27日火曜日
  • 9. GroovyServ構成図 Shell Environment User Groovy Srcipt C LA SS cm PA System.in TH d. System.out lin en e v SYstem.err ar gs Ctrl-C groovyclient TCP/IP groovyserver i n s td de t st d o u rr JavaVM st exit status File System Authentication Cookie File 2010年7月27日火曜日
  • 10. 通常のGroovy実行 User Groovy Shell Environment Srcipt C LA System.in SS cm PA System.out TH d. SYstem.err lin en e v ar gs Ctrl-C groovy i n s td de t st d o u JavaVM rr st exit status File System 2010年7月27日火曜日
  • 11. スクリプト開発 Groovyは本来、PerlやRubyにも拮抗しうる 強力なスクリプト言語 ワンライナー フィルタ、パイプ コンパイル不要 でも、レスポンス悪いとやる気が出ない トライ&エラーを繰り返すため そこで、GroovyServですよ 2010年7月27日火曜日
  • 12. 効果が薄い用途 サーバ開発 起動が頻繁ではない GUIアプリケーション 起動が頻繁ではない CUIアプリでシェルのように起動して操作するもの 起動が頻繁ではない cronで定期的に起動 起動レスポンスが重要ではない 2010年7月27日火曜日
  • 13. GroovyServ 高速起動Groovy <使ってみよう編> 2010年7月27日火曜日
  • 14. インストール http://kobo.github.com/groovyserv 展開したフォルダのbinにPATHを通す HOMEを設定する(0.3まで) GROOVY_HOMEを確認 好みにより、aliasを設定 (DOS窓ではdoskeyで設定可) 2010年7月27日火曜日
  • 15. 使い方 コマンド、2つ。 groovyclient groovyserver 2010年7月27日火曜日
  • 16. groovyclient groovyコマンドの代わり 初回起動時にgroovyserverがバックグラウ ンド起動 引数・オプションはgroovyserverにそのま ま渡される エイリアス/マクロ定義が便利 alias groovy=groovyclient (U*IX,cygwin) doskey groovy=groovyclient (windows) 2010年7月27日火曜日
  • 17. groovyserver groovyserv本体 使い方 groovyserver 明示的な起動 groovyserver -r groovyserver -k 再起動 停止 } win/非cygwin で利用不可 groovyserver -v 詳細ログ ログ出力先: /.groovy/groovyserv/groovyserver.log 2010年7月27日火曜日
  • 19. GroovyServ 高速起動Groovy <その他編> 2010年7月27日火曜日
  • 20. 制約について CWD問題 異なるカレントディレクトリを持 つような複数スクリプトを同時に は実行できない 非cygwin版では-r,-kが利用できない Permgen問題 2010年7月27日火曜日
  • 21. セキュリティについて 何もしないと何でも外部から実行でき てしまうため防御が必要 秘密のcookieファイルによる認証 ファイルシステムベース localhostからの接続のみに制限 どうしても分散実行したい場合、今のと ころssh port forwarding + NFSで。 2010年7月27日火曜日
  • 22. ロードマップ Groovyserv 0.4リリース…8/4 多くのbugfix、win設定簡易化 将来希望 Native Installerに組み込んだ上で Windows Installer版で提供 groovy --with-groovyserv 2010年7月27日火曜日
  • 23. まとめ groovyservをよろしく 是非お試しください バグ報告大歓迎です 2010年7月27日火曜日