23
GroovyServ 高速起動Groovy JGGUG スペシャルG*ワークショップ 2010/7/24 NTTソフトウェア株式会社 上原潤二 2010727日火曜日

GroovyServ concept, how to use and outline

Embed Size (px)

DESCRIPTION

about groovyserv

Citation preview

Page 1: GroovyServ concept, how to use and outline

GroovyServ高速起動GroovyJGGUG スペシャルG*ワークショップ

2010/7/24NTTソフトウェア株式会社

上原潤二

2010年7月27日火曜日

Page 2: GroovyServ concept, how to use and outline

自己紹介上原潤二NTTソフトウェア株式会社JGGUG運営員ブログ「Grな日々」「Grails徹底入門」2章執筆kobo(工房)プロジェクト

groovyserv, kobo-commons, String#tr()目的: 日本発のGroovyへの貢献

2010年7月27日火曜日

Page 3: GroovyServ concept, how to use and outline

目次概要編

GroovyServって何?起動が速いと何がうれしいの?どのぐらい速い?(Win,Mac)GroovyServ構成図通常のGroovy実行スクリプト開発効果が薄い用途

使ってみよう編インストール使い方groovyclientgroovyserverデモ

その他編制約についてセキュリティについてロードマップまとめ

2010年7月27日火曜日

Page 4: GroovyServ concept, how to use and outline

GroovyServ高速起動Groovy

<概要編>

2010年7月27日火曜日

Page 5: GroovyServ concept, how to use and outline

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

2010年7月27日火曜日

Page 6: GroovyServ concept, how to use and outline

起動が速いと何がうれしいの?dankogai氏曰く

そんなわけで、現存の言語では最も美人な Scala なのだが、Scala の最大の特長である「Java上で動く」というのは、最大の欠点でもある。(中略)最もそれを強く感じるのは、Scalaをスクリプトとして使ったときだろう。

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

起動0.27秒じゃ遅いyo!!

http://blog.livedoor.jp/dankogai/archives/51275491.html

2010年7月27日火曜日

Page 7: GroovyServ concept, how to use and outline

どのぐらい速い?(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日火曜日

Page 8: GroovyServ concept, how to use and outline

どのぐらい速い?(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日火曜日

Page 9: GroovyServ concept, how to use and outline

JavaVM

GroovyServ構成図Shell Environment

TCP/IPgroovyserver

groovyclientCtrl-C

stdin

stdou

tstd

err

exit status

CLASSPATH env

cmd. line args

File System

AuthenticationCookie File

User GroovySrcipt

System.in System.outSYstem.err

2010年7月27日火曜日

Page 10: GroovyServ concept, how to use and outline

Shell Environment

JavaVM

通常のGroovy実行

groovyCtrl-C

stdin

stdou

t

CLASSPATH env

cmd. line args

File System

User GroovySrcipt

System.in System.outSYstem.err

stderr

exit status

2010年7月27日火曜日

Page 11: GroovyServ concept, how to use and outline

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

2010年7月27日火曜日

Page 12: GroovyServ concept, how to use and outline

効果が薄い用途サーバ開発起動が頻繁ではない

GUIアプリケーション起動が頻繁ではない

CUIアプリでシェルのように起動して操作するもの起動が頻繁ではない

cronで定期的に起動起動レスポンスが重要ではない

2010年7月27日火曜日

Page 13: GroovyServ concept, how to use and outline

GroovyServ高速起動Groovy

<使ってみよう編>

2010年7月27日火曜日

Page 14: GroovyServ concept, how to use and outline

インストールhttp://kobo.github.com/groovyserv

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

2010年7月27日火曜日

Page 15: GroovyServ concept, how to use and outline

使い方コマンド、2つ。groovyclientgroovyserver

2010年7月27日火曜日

Page 16: GroovyServ concept, how to use and outline

groovyclientgroovyコマンドの代わり初回起動時にgroovyserverがバックグラウンド起動引数・オプションはgroovyserverにそのまま渡されるエイリアス/マクロ定義が便利alias groovy=groovyclient (U*IX,cygwin)doskey groovy=groovyclient (windows)

2010年7月27日火曜日

Page 17: GroovyServ concept, how to use and outline

groovyservergroovyserv本体使い方groovyserver 明示的な起動groovyserver -r 再起動groovyserver -k 停止groovyserver -v 詳細ログログ出力先: ~/.groovy/groovyserv/groovyserver.log

}win/非cygwin

で利用不可

2010年7月27日火曜日

Page 18: GroovyServ concept, how to use and outline

デモ

2010年7月27日火曜日

Page 19: GroovyServ concept, how to use and outline

GroovyServ高速起動Groovy

<その他編>

2010年7月27日火曜日

Page 20: GroovyServ concept, how to use and outline

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

2010年7月27日火曜日

Page 21: GroovyServ concept, how to use and outline

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

2010年7月27日火曜日

Page 22: GroovyServ concept, how to use and outline

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

2010年7月27日火曜日

Page 23: GroovyServ concept, how to use and outline

まとめgroovyservをよろしく是非お試しくださいバグ報告大歓迎です

2010年7月27日火曜日