• 検索結果がありません。

組み込みJava起動高速化の検討と評価

N/A
N/A
Protected

Academic year: 2021

シェア "組み込みJava起動高速化の検討と評価"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)4D-3. 情報処理学会第66回全国大会. 組み込み Java 起動高速化の検討と評価 竹内俊策†. 岡田英明‡. 三菱電機株式会社. 高橋克英‡. 前田慎司‡. モバイルターミナル製作所†. 【1】はじめに 現在、携帯端末に Java が組み込まれ、様々な サービスが提供されている。主要なサービスと してゲーム等のエンタテーメント系のアプリケ ーションがあり、我々は使用環境の向上策とし て JIT 動的コンパイラを適用した実行速度の高 速化を検討してきた[1]。しかし、近年ビジネス 系のアプリケーションが注目されてきている。 ビジネス系のアプリケーションには特に即座に 使用できる環境が必須であるが、現在、Java ア プリケーションの起動には 2∼5 秒程度の時間が かかっているためユーザが不便さを感じてしま う。Java 以外の電卓、スケジューラなどの組み 込みアプリケーションは 0.5 秒以内で起動して おり、Java アプリケーションに対してもこれら と同等の起動性能が求められている。 そこで本稿では、起動処理過程においてボト ルネックとなっている処理を明らかにし、その 高速化手法を検討、試作及びその評価を行った ので報告する。 【2】現状の JavaVM 起動方法とその性能 現状の JavaVM の起動処理過程(図 2 参照)では 各初期化処理を行った後、起動時に必要となる クラスに対してクラスロードを行う。クラスロ ードは、要求されたクラスのクラスファイルを 読み込み、揮発メモリ上に内部データ構造を構 築する。次にクラスのバイトコードを検証する。 また JIT 動的コンパイラ[1]が組み込まれている 場合、事前コンパイル対象とされているメソッ ドをコンパイルする。 上記起動処理過程の内ボトルネックとなって いる処理を明らかにするため、各処理時間を測 定した。ビジネス系のメールアプリ(アプリ 1)を 使用した場合の結果を図 1 に示す。なお、起動 開始はユーザによるアプリケーション起動要求 のキー入力時とし、起動終了はアプリケーショ ンの最初の画面が表示された時とした。図 1 中 の VM 起動前処理は起動開始から VM 起動処理開 Reducing Startup Time of Embedded Java Shunsaku Takeuchi† Hideaki Okada‡ Katsuhide Takahasi‡ Shinji Maeda‡ Taizou Kittaka‡ Mitsubishi Electric Corporation Mobile Terminal Center† Information Technology R&D Center‡. 橘高大造‡. 情報技術総合研究所‡. 始までの処理である。 総起動時間 2405msec のうちボトルネックとな っている処理は VM 起動前処理(21%)、クラスロ ード(26%)、検証処理(15%)、JIT 動的コンパイラ に関する処理(JIT 関係初期化処理と JIT 動的コ ンパイル)(32%)であった。起動前処理はボトル ネックとなっているが、VM における処理ではな いため本稿での検討対象外とする。 ビジネス系メールアプリ 総起動時間 2405msec. 4%. 21%. 15% 6. 15%. 7. 1. 5. 2. 17% 4. 3. 1. VM起動前処理. 2. JIT関係初期化処理. 3. VM初期化処理. 4. クラ スロ ード. 5. 検証処理. 6. JIT動的コン パイ ル. 7. その他. 2% 26% 図 1. アプリケーションの 起動時間とその内訳. 【3】高速化手法の検討 ボトルネックであるクラスロード、検証、コ ンパイル処理は起動毎に毎回同じ処理を行って いる。そのため揮発メモリにある処理済みのデ ータ構造を不揮発メモリに保存し、次回起動時 に再利用することによる高速化が可能であると 考えられる。コンパイル処理については、再利 用する方法の他に H/W アクセラレータを利用す ることでコンパイル処理を行わない方法が考え られる。そのため本稿ではクラスロード、検証 処理に絞って検討する。 クラスロード、検証処理を再利用するには 2 つの方法が考えられる。以下にその内容と利点、 欠点を述べる。 方法 1:クラスロードを行い、検証処理を行っ た直後(図 2 の d 点)に揮発メモリに構築された 内部データ構造を別の揮発メモリに一時的に退 避し、アプリケーション終了時に一時退避して おいた内部データ構造を不揮発メモリに保存す る。次回起動時に図 2 の b 点で保存しておいた内 部データ構造を不揮発メモリから揮発メモリに コピーする。. 1−17.

(2) は適さないため、方法 2 を採用し、試作を行っ て起動時間の性能を評価した。評価用のアプリ ケーションとしてビジネス系のメールアプリケ ーション(アプリ 1)とゲームアプリケーション (アプリ 2)とエンタテーメント系のメールアプリ ケーション(アプリ 3)を用いて測定を行い、事前 コンパイルをしない場合についても評価した。 図 3 にその結果を示す。 JIT 処理を行う場合、アプリ 1 は 41%、アプリ 2 は 40%、アプリ 3 は 48%の高速化が達成された。 また、JIT 処理を行わない場合は、アプリ 1 で 67%、アプリ 2 で 75%、アプリ 3 で 60%の高速化 が達成された。 5000 4000 時間(msec). 方法 2:アプリケーション終了時(図 2 の e 点) に揮発性メモリにおいて連続した領域に格納し てある内部データ構造を不揮発メモリに保存す る。次回起動時の各初期化処理終了後(図 2 の a 点)に不揮発メモリに保存されているデータを揮 発メモリにコピーする。 方法 1、2 ともに内部データ構造の中身にはポ インタ情報が含まれているため、不揮発メモリ への保存時に格納されていた揮発メモリの先頭 アドレス、内部データ構造のサイズ等の管理情 報を保存し、次回起動時に使用する。 方法 1 は検証処理直後のデータ構造を保存す るため、保存したデータ構造をそのまま次回起 動時に使用することができる。しかし、一時退 避するための揮発メモリが必要となる欠点があ る。 方法 2 では揮発メモリの使用量が増加すると いう欠点はない。しかし検証処理終了直後とア プリケーション終了時の内部データ構造には状 態差があり[2]、この状態差を解消するため保存 時に以下の処理を行う。 ・ 内部データ構造の状態を検証済みの状態に する。 ・ static フィールドの領域を 0 初期化する。 ・ quick 命令化されたバイトコードを元に戻す。. 3000 2000 1000 0 初回 2回目 JITOFF. アプリ 1. 1.VM起動前処理 START 初期化処理. a 必要な内部データ構造は リストにあるか?. b. 3.VM初期化処理. 4.データ構造のコピー 6.検証処理. 7.JIT動的コンパイル. 8.その他. 評価結果. YES. 【5】おわりに ロードしたクラスの検証処理済みの内部デー タ構造を不揮発メモリに保存し、次回起動時に 再利用することによる起動処理の高速化を検討 し、試作及び評価を行った。JIT 処理を行わない 場合、目標値には達していないもののファイル I/O の小さいビジネス系アプリであれば起動時間 が 1 秒を切る性能を得られた。 今後は本稿対象外としたコンパイル処理、起 動前処理の高速化について検討を行う。. NO. c YES. NO 検証処理. d JIT動的コンパイル. YES 起動に必要なクラスは 他にあるか? NO. 【参考文献】 [1] 高橋克英 他:携帯端末向け Java 高速化手法の 検討,FIT2003,pp79-80,2003 [2] Tim Lindholm,Frank Yellin:Java 仮想マシン 仕様 第 2 版,ピアソン・エデュケーショ ン,2001. 実行. e END. 図 2. アプリ 3. 2.JIT関係初期化処理. 5.クラスロード. 図 3. クラスロード. 内部データ構造は 検証済みか?. アプリ 2. VM 起動処理フロー図. 【4】試作結果 方法 1 はメモリ資源を節約したい携帯端末に. 1−18.

(3)

参照

関連したドキュメント

参考文献 1) K.Matsuoka: Sustained Oscillations Generated by Mutually.. 神経振動子の周波数が 0.970Hz

CN 割り込みが発生した場合、ユーザーは CN ピンに対応する PORT レジスタを読み出す

② 小売電気事業を適正かつ確実に遂行できる見込みがないと認められること、小売供給の業務

 戦後考古学は反省的に考えることがなく、ある枠組みを重視している。旧石 器・縄紋・弥生・古墳という枠組みが確立するのは

近年、めざましい技術革新とサービス向上により、深刻なコモディティ化が起きている。例え

る、というのが、この時期のアマルフィ交易の基本的な枠組みになっていた(8)。

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

Using the special C- mount ring adapter, the lens can be directly attached to a CCD camera, enabling it to be used as a low cost image ob- servation lens and variable focus lens