(57)【要約】【課題】  Ｊａｖａ（登録商標）クラスローディング時間を短縮できるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム及び方法を提供する。【解決手段】  補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングし、ランタイムデータを生成するクラスローダー部と、生成されたランタイムデータをアクセス可能な状態に保つ第１のメモリ部と、第１のメモリ部にアクセス可能な状態でローディングされたランタイムデータをイメージ型に格納する第２のメモリ部と、クラスローダー部の要請により、第２のメモリ部に格納されているランタイムデータを第１のメモリ部に読み込むランタイムデータ検索部と、第１のメモリ部にアクセス可能な状態でローディングされたランタイムデータを実行する実行部とを備える。【選択図】  図１
2004240965.tif 000002
【特許請求の範囲】
【請求項１】
補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングし、リンキング過程及び初期化過程を行ってランタイムデータを生成するクラスローダー部と、
前記クラスローダー部で生成されたランタイムデータをアクセス可能な状態に 保つ第１のメモリ部と、
前記第１のメモリ部にアクセス可能な状態でローディングされたランタイムデータをイメージ型に格納する第２のメモリ部と、
前記クラスローダー部の要請により、第２のメモリ部にイメージ型に格納されているランタイムデータを第１のメモリ部に読み込むランタイムデータ検索部と、
前記第１のメモリ部にアクセス可能な状態でローディングされた各ランタイムデータを実行する実行部とを備えることを特徴とするＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム。
【請求項２】
前記第１のメモリ部で使われていない空間を集めて再使用できるようにするガベージコレクター部をさらに備えることを特徴とする請求項１に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム。
【請求項３】
前記ランタイムデータ検索部は、前記クラスローダー部で生成されたランタイムデータを第２のメモリ部にイメージ型に格納することを特徴とする請求項１に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム。
【請求項４】
前記ランタイムデータ検索部は、ＬＲＵ方式を用いて前記第２のメモリ部にイメージ型に格納されているランタイムデータを管理することを特徴とする請求項１または３に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム。
【請求項５】
クラスローダー部がランタイムデータ検索部にＪａｖａ（登録商標）プログラムの実行時に必要なランタイムデータを要請するステップと、
前記ランタイムデータ検索部が前記要請されたＪａｖａ（登録商標）プログラムについてのランタイムデータを検索するステップと、
前記検索された該当のランタイムデータを第１のメモリ部に伝送するステップと、
前記第１のメモリ部に伝送されたランタイムデータを実行するステップとを含むことを特徴とするＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【請求項６】
前記検索されたランタイムデータは、第２のメモリ部にイメージ型に格納されていることを特徴とする請求項５に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【請求項７】
前記第２のメモリ部にイメージ型に格納されているランタイムデータは、ランタイムデータ検索部によりＬＲＵ方式で管理されることを特徴とする請求項６に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【請求項８】
前記要請されたＪａｖａ（登録商標）プログラムに対するランタイムデータを検索した結果、ランタイムデータが存在しない場合には、
補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングするステップと、
前記ローディングされたクラスファイルに対し、リンキング過程及び初期化過程を行ってランタイムデータを生成するステップと、
前記生成されたランタイムデータをイメージ型に格納するステップと、
前記イメージ型に格納されたランタイムデータを第１のメモリ部に伝送するステップとをさらに含むことを特徴とする請求項５に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【請求項９】
前記生成されたランタイムデータをイメージ型に格納するステップは、前記第１のメモリ部に伝送されたランタイムデータを実行するステップを行った後で行われることを特徴とする請求項８に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【請求項１０】
前記格納されているイメージ型のランタイムデータは、ランタイムデータ検索部によりＬＲＵ方式で管理されることを特徴とする請求項８に記載のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｊａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム及び方法に関し、より詳しくは、Ｊａｖａ（登録商標）プログラムのクラスローディング過程を行って生成されたランタイムデータをイメージ型に格納しておき、後でＪａｖａ（登録商標）プログラムを実行するときに、格納されているイメージ型のランタイムデータを読み込んで実行することにより、クラスローディング時間を短縮できるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム及び方法に関する。
【背景技術】
【０００２】
近年、無線端末機の使用が広がるにつれ、無線端末機上で作動するＪａｖａ（登録商標）プログラム(例えば、ゲーム、メッセンジャーなど)の大きさが益々大きくなる傾向にある。
【０００３】
ところで、Ｊａｖａ（登録商標）プログラムの実行時には、Ｊａｖａ（登録商標）仮想マシン(Ｊａｖａ（登録商標） Virtual Machine: ＪＶＭ)において、クラスローディング(class loading)過程が行われてＪａｖａ（登録商標）プログラムが実行される。しかし、前記クラスローディング(class loading)過程では、ローディング(loading)、リンキング(linking)及び初期化(initialization)などの過程を行っており、前記リンキング(linking)過程は、検証(verification)、予備(preparation)及び決定(resolution)などの過程を含んでいるため、クラスローディング過程を行うのに長い時間がかかるという問題点があった。
【０００４】
特に、クラスローディング過程のうち、検証過程は、同じバイトコード(byte code)について、Ｊａｖａ（登録商標）プログラムの実行初期に行えば良いが、現在のクラスローディング過程は、Ｊａｖａ（登録商標）プログラムを実行する度ごとに、検証過程を行うように設計されている。従って、既存のクラスローディング過程は、無線端末機のような低性能のＣＰＵや小容量のバッテリーを有するシステムでは、応答時間(response time)が増加し、バッテリーの消耗が大きくなるという問題点があった。
【０００５】
また、Ｊａｖａ（登録商標）プログラムの大きさが大きくなるほど、プログラムのローディングにかかる時間が増加することになり、無線端末機のような低性能のＣＰＵや小容量のバッテリーを有するシステムでは、応答時間が増加し、バッテリーの消耗が大きくなるという問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記問題点に鑑みなされたものであり、Ｊａｖａ（登録商標）プログラムのクラスローディング過程を行って生成されるランタイムデータをイメージ型に格納しておき、後でＪａｖａ（登録商標）プログラムを実行するときに、格納されているイメージ型のランタイムデータを読み込んで実行することにより、クラスローディング時間を短縮できるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム及び方法を提供することを目的とする。
【０００７】
また、本発明は、携帯電話のような低性能のＣＰＵや小容量のバッテリーを有する機器において、Ｊａｖａ（登録商標）プログラムの処理速度を向上することで、使用者に対する応答時間を減少させると共に、バッテリーの消費量を抑えることができるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステム及び方法を提供することを他の目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明に係るＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステムは、補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングし、リンキング過程及び初期化過程を行ってランタイムデータを生成するクラスローダー部と、前記クラスローダー部で生成されたランタイムデータをアクセス可能な状態に保つ第１のメモリ部と、前記第１のメモリ部にアクセス可能な状態でローディングされたランタイムデータをイメージ型に格納する第２のメモリ部と、前記クラスローダー部の要請により、第２のメモリ部にイメージ型に格納されているランタイムデータを第１のメモリ部に読み込むランタイムデータ検索部と、前記第１のメモリ部にアクセス可能な状態でローディングされたランタイムデータを実行する実行部とを備えることを特徴とする。
【発明の効果】
【０００９】
以上のように、本発明のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステムによると、Ｊａｖａ（登録商標）プログラムのクラスローディング過程を行って生成されたランタイムデータをイメージ型に格納しておき、後でＪａｖａ（登録商標）プログラムを実行するときに、格納されているイメージ型のランタイムデータを読み込んで実行することにより、クラスローディングの複雑な過程を行うことなく、Ｊａｖａ（登録商標）プログラムを実行することが可能となり、Ｊａｖａ（登録商標）プログラムの実行時に、クラスローディング時間を短縮できる効果がある。
【００１０】
また、低性能のＣＰＵや少容量のバッテリーを有する機器において、Ｊａｖａ（登録商標）プログラムの処理速度を向上することで、使用者に対する応答時間を減少させ、バッテリーの消費量を抑えることができる効果がある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の好ましい実施の形態を、添付図面に基づいて詳しく説明する。
図１は、本発明によるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステムの概略ブロック図であり、図１を参照して、クラスローダー部(class loader)１００、第１のメモリ部２００、ランタイムデータ検索部３００、第２のメモリ部４００、実行部５００、及びガベージコレクター部(garbage collector)６００とから構成されている。
【００１２】
クラスローダー部１００は、補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングし、リンキング過程及び初期化過程を行ってランタイムデータを生成する。ここで、前記ローディング過程とは、補助記憶装置に位置する各クラスファイルをＪａｖａ（登録商標）仮想マシン(Ｊａｖａ（登録商標） Virtual Machine: ＪＶＭ)に伝達する過程をいい、前記リンキング過程は、前記ローディングされたクラスファイルをＪａｖａ（登録商標）仮想マシンにより実行可能な状態にする過程をいうもので、検証、予備及び決定などの過程を含んでいる。前記ランタイムデータ(runtime data)は、第１のメモリ部２００にローディングされてＪａｖａ（登録商標）プログラムを実行するデータであり、コンスタントプール（constant pool）、メソードテーブル（method table）、フィールドテーブル（field table）などと理解することができる。
【００１３】
第１のメモリ部２００は、前記クラスローダー部１００で生成されたランタイムデータをアクセス可能な状態に保つ。即ち、前記クラスローダー部１００で生成されたランタイムデータを所定のメモリ領域に格納し、後述する実行部５００が前記格納されたランタイムデータをアクセスできるようにする。
【００１４】
第２のメモリ部４００は、前記第１のメモリ部２００にアクセス可能な状態でローディングされたランタイムデータをイメージ型に格納する。
【００１５】
一方、他の実施の形態として、前記第１のメモリ部２００や第２のメモリ部４００は、物理的に一つのメモリ部に構成しても良い。
【００１６】
ランタイムデータ検索部３００は、前記クラスローダー部１００の要請により、第２のメモリ部４００に格納されている各ランタイムデータを第１のメモリ部２００に読み込み、かつ、クラスローダー部１００で生成されたランタイムデータを第２のメモリ部４００にイメージ型に格納する。さらに、前記ランタイムデータ検索部３００は、ＬＲＵ(Least Recently Used) 方式を用いて第２のメモリ部４００にイメージ型に格納されているランタイムデータを管理する。ここで、前記ＬＲＵ方式とは、格納されているデータのうち、頻繁に使用されないデータをチェックして使用頻度の低い順に該当のデータを捨てることである。
【００１７】
実行部５００は、前記第１のメモリ部２００にアクセス可能な状態でローディングされたランタイムデータをそれぞれ実行する。
【００１８】
ガベージコレクター部６００は、前記第１のメモリ部２００で使われていない 空間を集めて再使用できるようにし、これにより、前記第１のメモリ部２００の使用空間を確保することが可能となる。
【００１９】
図２は、本発明によるＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法を示す概略フローチャートである。
先ず、クラスローダー部１００がランタイムデータ検索部３００にＪａｖａ（登録商標）プログラムの実行に必要なランタイムデータの検索を要請する(Ｓ１００)と、前記ランタイムデータ検索部３００は、第２のメモリ部４００にランタイムデータが存在するかを検索する(Ｓ１１０)。
【００２０】
前記第２のメモリ部４００から該当のランタイムデータが検索されると(Ｓ１２０で「はい」)、この 検索されたランタイムデータは、第１のメモリ部２００に伝送され(Ｓ１２５)、前記第１のメモリ部に伝送されたランタイムデータは、実行部５００により実行される(Ｓ１６０)。ここで、前記第２のメモリ部４００に格納されているランタイムデータは、イメージ型に格納されたファイルで、即ち、前のＪａｖａ（登録商標）プログラムの実行時に生成されたランタイムデータをイメージ型に格納しておいたファイルである。
【００２１】
一方、本発明においては、既に生成されて第２のメモリ部４００に格納されているランタイムデータを第１のメモリ部２００にローディングして実行すればよいため、Ｊａｖａ（登録商標）プログラムを実行する度ごとにランタイムデータを生成する必要がなく、これにより、ランタイムデータの生成のための複雑なローディング過程を省くことができ、クラスローディング時間を減らすことができる。
【００２２】
さらに、前記ランタイムデータ検索部３００で第２のメモリ部４００を検索した結果、ランタイムデータが存在しない場合（Ｓ１２０で「いいえ」）、前記クラスローダー部１００は、Ｊａｖａ（登録商標）プログラムの実行に必要なランタイムデータを生成する(Ｓ１３０)。
【００２３】
図３を参照して、前記ランタイムデータを生成する方法（Ｓ１３０）について説明すると、先ず、補助記憶装置からＪａｖａ（登録商標）プログラムのクラスファイルをローディングし(Ｓ１３２)、前記ローディングされたクラスファイルをリンキング過程及び初期化過程を行ってランタイムデータを生成する(Ｓ１３４〜Ｓ１３８)。ここで、前記ローディングとは、補助記憶装置に位置する各クラスファイルをＪａｖａ（登録商標）仮想マシンに伝達する過程をいい、前記クラスファイルリンキング過程は、前記ローディングされたクラスファイルをＪａｖａ（登録商標）仮想マシンにより実行可能な状態にする過程をいう。より詳しくは、前記ローディングされたクラスファイルが正しいクラスフォーマットになっているのかを検証する検証過程と、メモリ領域を割り当てる予備過程及び前記クラスファイルを実行可能に変換する決定過程を含んでいる。
【００２４】
その次、前記リンキング過程を行った後、クラスファイルを初期化してランタイムデータを生成する。前記生成されたランタイムデータは、ランタイムデータ検索部３００により第２のメモリ部４００にイメージ型に格納される(Ｓ１４０)。ここで、前記第２のメモリ部４００に格納されているイメージ型のデータは、ランタイムデータ検索部３００によりＬＲＵ方式で管理される。即ち、第２のメモリ部４００の格納領域が限定されているため、ＬＲＵ方式を適用して各データを管理している。
【００２５】
その後、イメージ型に格納されたランタイムデータは、ランタイムデータ検索部３００により第１のメモリ部２００に伝送され(Ｓ１５０)、前記第１のメモリ部２００に伝送されたイメージ型のランタイムデータは、実行部５００により実行される(Ｓ１６０)。ここで、前記第１のメモリ部２００にデータをローディングする空間が不足する場合、ガベージコレクター部６００において、前記第１のメモリ部２００で使われていない空間を集めて再使用できるようにすることで、前記第１のメモリ部２００の空間を確保している。
【００２６】
一方、前記ステップＳ１４０は、ステップＳ１６０を行った後で行うことも可能である。即ち、ランタイムデータが生成されると(Ｓ１３０)、この生成されたランタイムデータを第１のメモリ部２００に伝送し(Ｓ１５０)、この伝送されたランタイムデータを実行する(Ｓ１６０)。その次、前記Ｊａｖａ（登録商標）プログラムの実行が終了するときに、前記生成されたランタイムデータを第２のメモリ部４００に格納することもできる。
【００２７】
以上のように、上記実施の形態を参照して詳細に説明したが、本発明は、これに限定されるものでなく、このような本発明の基本的な技術的思想を逸脱しない範囲内で、当業界の通常の知識を有する者にとっては、他の多くの変更が可能であろう。また、本発明は、添付の特許請求の範囲により解釈されるべきであることは言うまでもない。
【産業上の利用可能性】
【００２８】
以上のように、本発明のＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステムによると、Ｊａｖａ（登録商標）プログラムのクラスローディング過程を行って生成されたランタイムデータをイメージ型に格納しておき、後でＪａｖａ（登録商標）プログラムを実行するときに、格納されているイメージ型のランタイムデータを読み込んで実行することにより、クラスローディングの複雑な過程を行うことなく、Ｊａｖａ（登録商標）プログラムを実行することが可能となり、Ｊａｖａ（登録商標）プログラムの実行時に、クラスローディング時間を短縮できる効果がある。
【００２９】
また、低性能のＣＰＵや少容量のバッテリーを有する機器において、Ｊａｖａ（登録商標）プログラムの処理速度を向上することで、使用者に対する応答時間を減少させ、バッテリーの消費量を抑えることができる効果がある。
【図面の簡単な説明】
【００３０】
【図１】本発明に係るＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮するシステムを示す概略ブロック図である。
【図２】本発明に係るＪａｖａ（登録商標）プログラムでのクラスローディング過程を短縮する方法を示す概略フローチャートである。
【図３】図２のランタイムデータ生成ステップの詳細を示すフローチャートである。
【符号の説明】
【００３１】
１００    クラスローダー部
２００    第１のメモリ部
３００    ランタイムデータ検索部
４００    第２のメモリ部
５００    実行部
６００    ガベージコレクター部
【図１】
2004240965.tif 000003
【図２】
2004240965.tif 000004
【図３】
2004240965.tif 000005