JRuby Google AppEngine Wrapper
Google AppEngineの各種サービスのJRubyラッパーを現在分かっている範囲でまとめました。
JRuby Google AppEngine Service ラッパー
ご参照ください。
2009/04/15 by Tomo Nozawa
tips & Rails template JRuby for GAE/J
Google AppEngineでJRubyを動作させるために現状分かっている注意点をまとめました。
JRuby on Google AppEngineの注意事項
またRails 2.3からの新機能アプリケーションテンプレートを使用して、非常に簡単にRailsアプリをGAE/J用にする方法をまとめました。
以上ご参照ください。
2009/04/14 by Tomo Nozawa
v8 for Google Chrome
ちょっと出遅れましたが、巷を席捲するGoogleのwebブラウザ「Chrome」。
WebKitベースのUIとしてのブラウザはもちろん、注目を集めているのが、弊社でJava HotSpot VMを開発していたLars Bakが中心となって、独自開発したjavascriptレンダリングエンジン「v8」。
このv8の特徴としては3つ。
- プロパティへの高速なアクセス
- ダイナミックなマシンコード生成
- 効率的なGC
まずプロパティへの高速なアクセスとは、javascriptはダイナミックな言語であるため、自由にオブジェクトにプロパティを追加・削除を行うことができますが、それを実現するために多くのjavascriptエンジンでは、ハッシュのような辞書による実装を行っているため、プロパティにアクセスするたびに辞書をルックアップする必要が発生し、実行速度を低下させています。このルックアップをなくすため、v8では隠れたclass(hidden class)というものを用いて、同じプロパティを持つオブジェクトをまとめ、プロパティへのアクセスを高速化させています。
ダイナミックなマシンコード生成とは、v8ではjavascriptは最初の実行時にバイトコードやインタープリターではなく、直接マシンコードに変換され、実行される。そのためより高速に実行可能にするもの。
そして、v8のガベージコレクションの機能は、従来のjavascriptエンジンでは、JavaScriptエンジンでは、メモリ上のオブジェクトやポインタの位置を正確に把握していないため、オブジェクトやポインタの探索に時間がかかっていたが、v8では、メモリ上のすべてのオブジェクトとポインタの場所をトラッキングし、さらにold/newという世代別GCやメモリ・コンパクションといったスマートなGCを導入することで、GCによるアプリケーションの停止時間を激減させるというものです。
このようにv8はかなり画期的なjavascriptエンジン。そのエンジンを使ってRubyを動かしたらどうなるでしょう?従来javascript上のRuby処理系としてHotRubyがありましたが、v8上で動作させた「rbv8」が早くも登場しています。
このrbv8でベンチマークすると、もちろん単純なテストですが、なんとMRIの10倍、JRuby1.1b1の約40倍高速という結果がでたようです。
rbv8自体が実験的な実装なので、比べても意味がないのかもしれませんが、如何にv8が高速化が分かるかもしれません。
v8自体はC++で実装されているので、今後さまざまなものに利用されていく可能性もあり、非常に注目です。
2008/09/04 by Tomo Nozawa
Google App Engine
今までS3、EC2などAmazonの独断場だったクラウドコンピューティングを利用したホスティングについにGoogleが手を伸ばしました。
Google App Engineと呼ばれるそのサービスは、Googleのコンピューティングリソース上で自前のアプリを動作させることができるというもの。SDKも公開されていて、GoogleのリソースにアクセスするためのPythonのライブラリとDjangoからなっています。
ちょっとさわってみましたが、非常によくできていて、ローカルで開発しているときとGFSなどのGoogle上のリソースを使う時をほぼ透過的に扱うことができるようになっています。
一部で指摘されていますが、このSDKを使ってスタートアップ企業が自前のアプリを開発し、サービスインした場合、システム的に非常にGoogleと親和性が高くなり、もし成功した場合、よりスムーズにGoogleに買収される可能性があるということがこのApp Engineの根底にはあるのかもしれません。
とはいえ、かなり面白いサービスです。いまのところプレビューということでいろいろ制限が課されていますが、今後Rubyなどのほかの言語もサポートされる予定なので、かなり注目です。
2008/04/08 by Tomo Nozawa
