JavaSE 6 update10でのアプレットの起動時間

update10での改善点にアプレットの起動時間短縮というものがある。

というわけで試してみた。update7以前で計測していないため、比較は出来ないのだが確かに問題になる時間はない。しかし、もともとSunのJDKでは大幅に改善されており、特にhotspot VMになってから大幅に改善された。hotspotVMのコアの技術はサーバーサイドで恩恵がそんなにあるものではないということ。

Appletが遅いといわれた理由はずばり当時のブラウザの主流であったNetscapeに搭載されたシマンテックJIT VMにある。コンパイルしてから起動するので非常に速度が速く、ベンチマークでも圧倒的な速度を誇っていたのだが、起動時間がすさまじく遅く、インタプリタ時代のほうが使いやすかったというオチがついたのだ。1分とかブラウザが固まるってのはとんでもないことだとは誰も思わなかったのかねぇ。

その反省点からhotspotVMの開発が始まったと考えると悪いばかりではないと思うのだが、ちゃんとそのままアプレットが普及していれば少なくとも現在のWebアプリのような陳腐なHTMLを組み立てるWebアプリがこれほど普及することもなかったし、リッチクライアントの技術競争が激しくて面白かったのかもしれない。

起動後初回起動

マシンを起動し、ブラウザのみを立ち上げて、アプレットのあるページを表示。
何度か再起動させたが、おおむね3秒。まったく問題ない速度だね。これが10年前に実現できていれば・・・。

ブラウザ再起動

ブラウザを再起動し、アプレットのあるページを表示。つまりJavaアプレットのプロセスの起動時間の計測。
何度も確認したが、おおむね1秒以内に表示される。ブラウザをこまめに閉じる使い方をする人も多いので、これも問題ない速度なのがわかる。

アプレットのみ

一度アプレットを表示し、ブラウザはそのまま他のアプレット等のあるページを表示。
ずばり0秒。



はは・・・アプレット全然問題ないやん。今後はアプレットで作ろうかなぁ。でもJNIまわりが面倒だからやっぱりアプリケーションにしようかな。アプレットが動くということはスタンドアロンJavaアプリケーションも起動するわけで。入り口としてアプレット、本格的なアプリはアプリケーションスタイルということになるかな。通常のアプレットでもJNLPが使えるようになったおかげでWebStartアプレット(元々使ってる人少ないけど)の存在意義はなくなったかな。ドラッグでデスクトップにおけるようだし。


Javaは元々サーバーサイドの技術用に作られたのではなく、クライアントサイドで動くように作ったのがはじまり。したがってJavaでクライアントアプリを作ることこそがもっともJavaの本質をあらわす・・・ことになるよね?はてなキーワードからいろいろとみてると、Javaはサーバーサイドの話ばかりでつまらんよね?仕事ならともかく、趣味でもサーバーサイドばかりなんてなんとつまらんことよ(暴言)。

Webアプリよりはるかにゲーム開発のほうが敷居は低いのになんでネットで情報が少ないんだろう。書籍にしても10年以上の歴史がある中、Javaのゲーム関連書籍でまともに書かれてるのが1冊しかない(15歳からはじめる〜とかいうやつ)という時点でおかしいんだよ。

というわけでJava使いはみんなゲームつくろうぜ。DRAGON 'J' SPIRITとかそういうの楽しいだろJK。