64bit JVMとCompressed OOPs Feature
(↓)ここの64bit JVMと32bit JVM,どっちがいいの?的な話が発端。とても興味深い。
→ http://www.groovygrails.de/blog/groovygrails/entry/grails_java_web_hosting_32
曰く,64bit JVMのメリットは「2G/4G以上のメモリ空間を利用できる」にあるのだけれど,それに伴うデメリットもあるそうだ。そのひとつがメモリ消費量の増加(32bitと比べ60%増)なんだそうな(パフォーマンスは,64bit CPU命令使えて良いって話と,アドレッシングが4byteから8byteになって損だって話があるから,あたしとしては棚上げしていいかな思ってる)。
なんで,物理的に広大なメモリ空間を持っていて計算集約型(Compute intensive)なアプリ(ってなに?)なら64bit JVM使うと得するけど,データ集約型(Data intensive)アプリ(ってなに?)なら32bit JVMのほうがイイヨ。と言うか,選択可能だったら32bitがイイヨって書いてる。:-)
それでも,世の中のVPS屋は64bit OSをホストしているので,載っているJVMも64bitになってることもあるよ,と。でも"compressed oops feature for 64-bit JVM"に期待しよう,だって。ん,"compressed oops feature"?なにそれ?
OOPってのは"ordinary object pointer"の事らしい。なんか知らんが,64bit JVMでもアドレッシングを4byteに圧縮して使おう言う機能のようだ(超テキトウ)。
→ http://wikis.sun.com/display/HotSpotInternals/CompressedOops
どのUpdateからかは追えてないけど,少なくともJDK6u14には含まれているようだ(下のリンクだとJDK6u6pで試している)。
→ 32-bit or 64-bit JVM? How about a Hybrid? «Ismael Juma Ismael Juma
(↑)ここに書いてあるベンチマークによれば,"compressed oops feature"を使えば,32bit JVMと比べ,
- スループットは僅差
- 消費メモリ量は 16%増
で,32bit JVMより広いメモリ空間が利用できるっつうメリットが得られるようだ。いいことずくめな気もするけど,まだ -XXオプション扱いなのよね("-XX:+UseCompressedOops"で有効になる)。だから「64bit JVMは様子見」ってのは外れちゃいないんだろう。
#できれば,自分自身で体験してもっとリアリティを感じてみたいところだ。
ps.
G1コレクタとか,64bit JVMとか。新しい話題が出てきて,そろそろ持ちネタの鮮度が落ちてきたな。:-P
Hudsonを使ったCIサーバのデモムービー
Continuous Integration(asin:0321336380)のブログが1年ぶりに更新されたと思ったら,こんなデモムービーが投稿されてた。
→ http://integratebutton.com/blog/2009/03/16/new-video-use-a-continuous-integration-server-using-hudson/
デモに使ったプロジェクトはGoogle Codeにホストされてて,Antベースながらも実に多彩な事をやっている(例えば,ビルド以外にもDBのインテグレーション,各種検査,デプロイなどなど)。確かに良い勉強材料になりそうなんだけど,ちょろっと試すにはハードル高いかも。:-)
確かに,JDKとAnt,SVNのクライアントがあればすぐに始められるんだけど,若干調整ごとがあるんで,そこで挫けそうな気もしなくもなしダ(ANT_OPTSの設定とか,Tomcatのバージョンが,とかとか)。
だからつってムービーみただけじゃ雰囲気伝わんないよね。
GParallelizer - 並列処理用Groovy DSL
http://code.google.com/p/gparallelizer/
ScalaのActor風なActors,Java5のExecutor Serviceベースの並列コレクションとクロージャのAsynchronizerとJSR166ベースのParallelizerとで成り立ってるようだけど,どれも良く分かりませんっ!!
そもそもScalaのActorを知らんのだけれど,Actorsはコード例から雰囲気は読み取れる(メッセージの送受信んとこ)。他の2つは,あたしの創造力が足りない。:-P
しかし,あれだ。最近Groovyのほうが居心地良くなってきたんだけど,それって良いんだか悪いんだか。
と言うか,Java(言語)が面倒臭いねとか思い始めてるし。あははー。:-)