●ザウルスでJava高速起動に挑む
Ver:
形式:
言語:Java, Ruby
環境:Zaurus SL-C760
備考:こちらで高速起動ツール公開中
■勝敗の行方
最初に結論を書いておきます。結果は完敗です。
確かに高速起動にはなりますが、PCで実行した場合とは異なり、メリッ
トがなくデメリットばかりでした。
(PCで高速起動ツールを実行した場合は、下記のような問題はありません)
【メリット】
・Javaアプリの高速起動
JFtpで起動時間が通常の三分の一ぐらいになります。
【デメリット】
・KeyHelperのShift+Homeのアプリ切替不可
高速起動アプリに切替ると画面が真白になり、再起動が走ります。
・短時間しか起動しない
起動が高速になる2回目以降、十秒ほどでアプリが消えます。
SWTのようにmain関数の終わりでループさせてもだめでした。
(インスタンスを作成しておけばいけるかな? 要テスト)
・メモリが解放されない?
高速起動アプリを落としてもメモリ使用領域が減りません。
通常アプリを裏に回しているのと同じような。
■紹介
Javaアプリケーションの起動速度を高速にするツールとして、Torutkさん
の「Mercury版Javaクラス高速起動ツール」というものがあります。それを
ザウルスで使用してみました。
どのような処理を行い、高速化しているかなどの解説は、Torutkさんの
ページを参照してください。簡単に言うと、Java実行環境をあらかじめ立
ち上げておいて、そこに実行したいプログラムをロードし、実行する方法
らしいです。
なお、ポート12345のソケット通信を使用しますが、ローカル127.0.0.1
以外からの接続は拒否するようにしてあります。
■ダウンロード
→ ザウルス用Java高速起動ツール ZMercury.jar
→ JFtp高速起動用Rubyスクリプト jftp-fastup_test_all.ipk
→ JFtp高速起動版 jftp_0.16.2F_arm.ipk
■使用方法
「ZMercury.jar」ファイルをダウンロード後、以下のファイルに保存し
ましす。(他のディレクトリに保存するには、ipkファイルに含まれる
JFtpFastup.rbのパス設定を書き換え、インストールしてください)
【ZMercury.jar保存パス】
/home/zaurus/Documents/Java_Files/ZMercury.jar
また、「jftp-fastup_test_all.ipk」もダウンロードし、「ソフトウェ
アの追加/削除」からインストールしてください。
なお、JFtpの高速起動はv0.16.2Fでのみ対応しています。それ以外の
バージョンでは無意味です。(単に、引数ありの起動時、System.exit(0)
を呼ばないようにしただけだったりします)
上記の準備完了後、JFtpFastupアイコンから起動時、2回目以降から起
動時間が短縮されます。JFtpアイコンからの起動は通常起動となり、起動
時間は短縮されないことに注意してください。
■高速起動ツールの変更点
このページで公開している「ZMercury.jar」は、Torutkさんの「Mercury
版Javaクラス高速起動ツール」とは多少異なっています。
公開されているものをそのまま使用してもまったく問題ないのですが、以
下の点を変更してみました。(ソースの修正点はインデントがあっていない
部分やメソッドの前にコメントがない部分です(^^;)
【変更点】
・ザウルスでは動作しないString.splitメソッドの削除
・ローカル127.0.0.1以外からの通信は受け付けないように修正
・“L”コマンドで追加クラスパス表示
・デフォルトの待受けポート番号を2345→12345に変更(なんとなく)
・Java仮想マシン部は常にコマンドを受け付けるようにしました
・処理実行Method.invokeメソッドを別スレッドにしました
・起動メッセージ出力時期の変更(スクリプトで応答を取得するため)
■高速起動用スクリプトの内容
JFtp高速起動用Rubyスクリプトの内容です。拙いです。
→ JFtpFastup.rb
■ライセンス
ZMercury.jarはGPLです。
ZMercury.jarの著作権はTorutkさんにあります。
ソースはクラスファイルと同じくjarに固めてあります。
JFtpはGPLではないので、ソースは公開していません。
■履歴
・2004/07/25公開
|
【 Back 】