Upload
junji-uehara
View
2.170
Download
2
Embed Size (px)
DESCRIPTION
about groovyserv
Citation preview
GroovyServ高速起動GroovyJGGUG スペシャルG*ワークショップ
2010/7/24NTTソフトウェア株式会社
上原潤二
2010年7月27日火曜日
自己紹介上原潤二NTTソフトウェア株式会社JGGUG運営員ブログ「Grな日々」「Grails徹底入門」2章執筆kobo(工房)プロジェクト
groovyserv, kobo-commons, String#tr()目的: 日本発のGroovyへの貢献
2010年7月27日火曜日
目次概要編
GroovyServって何?起動が速いと何がうれしいの?どのぐらい速い?(Win,Mac)GroovyServ構成図通常のGroovy実行スクリプト開発効果が薄い用途
使ってみよう編インストール使い方groovyclientgroovyserverデモ
その他編制約についてセキュリティについてロードマップまとめ
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を立ち上げ、Scala環境を初期化するのにそれだけかかるのだ。(中略) コンパイルした場合でも、0.27秒。ワンライナーを書くのにも最適な Scala なのに(後略)
起動0.27秒じゃ遅いyo!!
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日火曜日
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日火曜日
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日火曜日
スクリプト開発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つ。groovyclientgroovyserver
2010年7月27日火曜日
groovyclientgroovyコマンドの代わり初回起動時にgroovyserverがバックグラウンド起動引数・オプションはgroovyserverにそのまま渡されるエイリアス/マクロ定義が便利alias groovy=groovyclient (U*IX,cygwin)doskey groovy=groovyclient (windows)
2010年7月27日火曜日
groovyservergroovyserv本体使い方groovyserver 明示的な起動groovyserver -r 再起動groovyserver -k 停止groovyserver -v 詳細ログログ出力先: ~/.groovy/groovyserv/groovyserver.log
}win/非cygwin
で利用不可
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日火曜日