(57)【要約】      （修正有）【課題】アプリケーションプログラムの実行が要求されてから実行が完了するまでに要する時間を短縮する。【解決手段】プリロード対象名リストファイルに存在するアプリケーションプログラムのクラス群データを記憶装置からメモリにプリロードするステップと、アプリケーション実行要求で指定されたアプリケーションプログラムのクラス群データがメモリ上に存在する場合、メモリ上に存在するクラス群データを利用してアプリケーションプログラムを実行するステップ（Ｓ００３）と、アプリケーション実行要求で指定されたアプリケーションプログラムのクラス群データがメモリ上に存在しない場合、クラス群データを記憶装置からメモリ上にロードしてアプリケーションプログラムを実行する（Ｓ００５）ステップと、実行が終了したアプリケーションプログラムのクラス群データをメモリから削除するステップ（Ｓ００４、Ｓ００６）とを有する。【選択図】図３
2006189944.tif 000002
【特許請求の範囲】
【請求項１】
入力されたアプリケーション実行要求に従って、アプリケーションプログラムを記憶装置からメモリにロードして実行するアプリケーション実行方法であって、
アプリケーションプログラムの識別子であるクラス名が登録されるプリロード対象名リストに存在するアプリケーションプログラムのクラス群データを記憶装置からメモリにプリロードするステップと、
アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在する場合、前記メモリ上に存在するクラス群データの中から指定されたクラス名のクラス群データを利用してアプリケーションプログラムを中央処理制御装置が実行するステップと、
アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在しない場合、指定されたクラス名のアプリケーションプログラムのクラス群データを前記記憶装置からメモリ上にロードしてアプリケーションプログラムを中央処理制御装置が実行するステップと、
実行が終了したアプリケーションプログラムのクラス群データを前記メモリから削除するステップと、
を有することを特徴とするアプリケーション実行方法。
【請求項２】
入力されたアプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在しない場合、前記記憶装置からメモリ上に指定されたクラス名のアプリケーションプログラムのクラス群データをロードするとともに、前記クラス名を前記プリロード対象名リストに登録するステップを
有することを特徴とした請求項１に記載のアプリケーション実行方法。
【請求項３】
前記プリロード対象名リストは、前記記憶装置から読みだされたアプリケーションプログラムのリスト名が予め登録されている
ことを特徴とした請求項１に記載のアプリケーション実行方法。
【請求項４】
入力されたアプリケーション実行要求で指定されたアプリケーションプログラムが、前記メモリにプリロードされたクラス群データにより実行されたか否かの判断結果に基づいて、規定式で算出した値を比較して前記メモリにプリロードするクラス群データの数を調整するステップを
有することを特徴とした請求項１乃至３に記載のアプリケーション実行方法。
【請求項５】
入力されたアプリケーション実行要求で指定されたアプリケーションプログラムが、前記メモリにプリロードされたクラス群データにより実行された回数をヒット回数とし、また、前記メモリにプリロードされていなかったクラス群データにより実行された回数をミス回数としたとき、
前記ヒット回数及び前記ミス回数に基づいて算出した値が上限閾値以上である場合、前記メモリにプリロードするクラス群データの数を減少させるステップと、
前記ヒット回数及び前記ミス回数に基づいて算出した値が下限閾値以下である場合、前記メモリにプリロードするクラス群データの数を増加させるステップと、
を有することを特徴とした請求項１乃至３のいずれか１に記載のアプリケーション実行方法。
【請求項６】
入力されたアプリケーション実行要求で指定されたアプリケーションプログラムの実行が行われる中央処理制御装置の負荷値を検出し、検出された前記負荷値が閾値と比較して高い場合、前記メモリにプリロードするクラス群データ数を減少させるステップを
有することを特徴とした請求項１乃至３に記載のアプリケーション実行方法。
【請求項７】
入力されたアプリケーション実行要求に従って、アプリケーションプログラムを記憶装置からメモリにロードして実行するアプリケーション実行プログラムであって、
アプリケーションプログラムの識別子であるクラス名が登録されるプリロード対象名リストに存在するアプリケーションプログラムのクラス群データを、中央処理制御装置により記憶装置からメモリにプリロードさせるステップと、
アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在する場合、前記メモリ上に存在するクラス群データの中から指定されたクラス名のクラス群データを利用してアプリケーションプログラムを、中央処理制御装置に実行させるステップと、
アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在しない場合、指定されたクラス名のアプリケーションプログラムのクラス群データを前記記憶装置からメモリ上にロードしてアプリケーションプログラムを、中央処理制御装置に実行させるステップと、
実行が終了したアプリケーションプログラムのクラス群データを、前記メモリから削除させるステップと、
を有することを特徴とするアプリケーション実行プログラム。
【請求項８】
入力されたアプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在しない場合、前記記憶装置からメモリ上に指定されたクラス名のアプリケーションプログラムのクラス群データをロードするとともに、前記クラス名を前記プリロード対象名リストに登録するステップを
有することを特徴とした請求項７に記載のアプリケーション実行プログラム。
【請求項９】
前記プリロード対象名リストは、前記記憶装置から読みだされたアプリケーションプログラムのリスト名が予め登録されている
ことを特徴とした請求項７に記載のアプリケーション実行プログラム。
【請求項１０】
入力されたアプリケーション実行要求で指定されたアプリケーションプログラムが、前記メモリにプリロードされたクラス群データにより実行されたか否かの判断結果に基づいて、規定式で算出した値を比較して前記メモリにプリロードするクラス群データの数を調整するステップを
有することを特徴とした請求項７乃至９のいずれかに記載のアプリケーション実行プログラム。
【請求項１１】
アプリケーションプログラムが、前記メモリにプリロードされたクラス群データにより実行された回数をヒット回数とし、また、前記メモリにプリロードされていなかったクラス群データにより実行された回数をミス回数としたとき、
前記ヒット回数及び前記ミス回数に基づいて算出した値が上限閾値以上である場合、前記メモリにプリロードするクラス群データの数を減少させるステップと、
前記ヒット回数及び前記ミス回数に基づいて算出した値が下限閾値以下である場合、前記メモリにプリロードするクラス群データの数を増加させるステップと、
を有することを特徴とした請求項７乃至９のいずれかに記載のアプリケーション実行プログラム。
【請求項１２】
入力されたアプリケーションプログラムの実行要求で指定されたアプリケーションプログラムの実行が行われる中央処理制御装置の負荷値を検出し、検出された前記負荷値が閾値と比較して高い場合、前記メモリにプリロードするクラス群データ数を減少させるステップを
有することを特徴とした請求項７乃至９に記載のアプリケーション実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション実行方法およびアプリケーション実行プログラムに関する。
【背景技術】
【０００２】
計算機において、インタプリタを利用してプログラムを実行する際、単一のプロセス内で複数のプログラムが実行されることがある。Ｊａｖａ（登録商標）実行環境等におけるプログラム実行を例にあげると、図７に示すように、単一のインタプリタＡの実行により、プロセスＡにおいて複数のソースプログラムＢ，Ｃ，Ｄが、仮想プロセスＢ，Ｃ，Ｄとして実行される。このように、単一のプロセス内で実行される複数のプログラムは仮想プロセスとされて実行される。
【０００３】
ここで、「プロセス」とは、オペレーティングシステムによって直接実行される処理をいう。また、「仮想プロセス」とは、オペレーティングシステムによって実行されたプロセス内で、バーチャルマシンのように仮想的に実行される処理をいう。
【０００４】
「プロセス」および「仮想プロセス」のいずれの処理を行う場合であっても、プログラムを実行するには、まず、外部記憶装置に保存したプログラムをメモリにロードし、「プロセス」および「仮想プロセス」の実行を開始できるように初期化処理を行う。一般的に、バーチャルマシンによるプログラムのロードは、オペレーティングシステムによるプログラムのロードと比較すると、より長い時間を要する。各処理を行う度に、プログラムのロードをしており、バーチャルマシンを利用したプログラムの実行は、実行の要求がされてからプログラムが終了するまでに時間がかかるという問題がある。
【０００５】
プログラムを実行する際、外部記憶装置に保存したプログラムをメモリへ読み込むことにより、アクセス回数を減らしてプログラムを実行開始するまでの時間やプログラムの実行時間を短縮する技術がある（たとえば、特許文献１）。
【特許文献１】特開平８−４４５７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１に記載の発明によれば、プログラムの実行要求がされてから、外部記憶装置に保存したプログラムをメモリに読み込む時間が含まれる。このようにアプリケーション実行要求がされてからアプリケーションプログラムをメモリへロードする場合、プログラムの実行が開始されるまでに長い時間を要し、プログラムの実行が完了するまでに長い時間がかかるという問題がある。
【０００７】
上記課題に鑑み、本発明は、アプリケーションプログラムの実行が要求されてからアプリケーションプログラムの実行が完了するまでに要する時間を短縮するアプリケーション実行方法およびアプリケーション実行プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の特徴に係るアプリケーション実行方法は、入力されたアプリケーション実行要求に従って、アプリケーションプログラムを記憶装置からメモリにロードして実行するアプリケーション実行方法であって、アプリケーションプログラムの識別子であるクラス名が登録されるプリロード対象名リストに存在するアプリケーションプログラムのクラス群データを記憶装置からメモリにプリロードするステップと、アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在する場合、前記メモリ上に存在するクラス群データの中から指定されたクラス名のクラス群データを利用してアプリケーションプログラムを中央処理制御装置が実行するステップと、アプリケーション実行要求で指定されたクラス名のアプリケーションプログラムのクラス群データが前記メモリ上に存在しない場合、指定されたクラス名のアプリケーションプログラムのクラス群データを前記記憶装置からメモリ上にロードしてアプリケーションプログラムを中央処理制御装置が実行するステップと、実行が終了したアプリケーションプログラムのクラス群データを前記メモリから削除するステップとを有することを特徴とする。
【０００９】
上記構成による本発明によれば、アプリケーション実行要求がされてからアプリケーションの実行が完了するまでに要する時間を短縮させることができる。
【発明の効果】
【００１０】
本発明によれば、アプリケーション実行要求がされてからアプリケーションの実行が完了するまでに要する時間を短縮するアプリケーション実行方法およびアプリケーション実行プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の最良の実施の形態を説明する。
【００１２】
図１に示すのは、本発明の最良の実施の形態に係るアプリケーション実行方法を説明する図である。以下に示すアプリケーション実行方法においては、実行するアプリケーションプログラムは、Ｊａｖａ（登録商標）プログラムを例にして説明する。
【００１３】
図１に示す例では、２次記憶部１０にアプリケーション実行要求プログラム１００、アプリケーション実行プログラム１２０、実行プログラム１１０およびアプリケーションプログラム１３０が記憶されている。
【００１４】
また、図１に示すのは、メモリ２０にアプリケーション実行要求プログラム１００、アプリケーション実行プログラム１２０、実行プログラム１１０およびアプリケーションプログラム１３０が２次記憶部１０から読み出され、アプリケーション実行要求プロセス２００、実行プロセス２１０、アプリケーション実行プロセス２２０およびアプリケーションプロセス２３０として実行された例である。
【００１５】
本発明の最良の実施の形態に係るアプリケーション実行方法は、図２に示すように、中央処理制御装置３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３および入出力インタフェース３０９が、バス３１０を介して接続されている。入出力インタフェース３０９には、入力装置３０４、表示装置３０５、通信制御装置３０６、記憶装置３０７およびリムーバブルディスク３０８が接続される計算機１において実現される。
【００１６】
中央処理制御装置３０１は、入力装置３０４からの入力信号に基づいてＲＯＭ３０２から計算機１を起動するためのブートプログラムを読み出して実行し、更に記憶装置３０７に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置３０１は、入力装置３０４や通信制御装置３０６などの入力信号に基づいて、各種装置の制御を行ったり、ＲＡＭ３０３や記憶装置３０７などに記憶されたプログラムおよびデータを読み出してＲＡＭ３０３にロードするとともに、ＲＡＭ３０３から読み出されたプログラムのコマンドに基づいて、データの計算または加工など、後述する一連の処理を実現する処理装置である。
【００１７】
入力装置３０４は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース３０９およびバス３１０を介して中央処理制御装置３０１に送信される。表示装置３０５は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどであり、中央処理制御装置３０１からバス３１０および入出力インタフェース３０９を介して表示装置３０５において表示させる出力信号を受信し、たとえば、中央処理制御装置３０１の処理結果などを表示する装置である。通信制御装置３０６は、ＬＡＮカードやモデムなどの装置であり、アプリケーションプログラムを実行する計算機１をインターネットやＬＡＮなどの通信ネットワークに接続する装置である。通信制御装置３０６を介して通信ネットワークと送受信したデータは入力信号または出力信号として、入出力インタフェース３０９およびバス３１０を介して中央処理制御装置３０１に送受信される。
【００１８】
記憶装置３０７は半導体記憶装置または磁気ディスク装置等であって、中央処理制御装置３０１で実行されるプログラムやデータが記憶されている。リムーバブルディスク３０８は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース３０９およびバス３１０を介して中央処理制御装置３０１に送受信される。２次記憶部１０は、本発明に係るアプリケーション実行方法が実現される計算機１の記憶装置３０７に相当する。また、この２次記憶部１０で記憶しているアプリケーション実行要求プログラム１００、アプリケーション実行プログラム１２０、実行プログラム１１０およびアプリケーションプログラム１３０がメモリ２０に読み込まれて中央処理制御装置３０１により実行されることによって、アプリケーション実行要求プロセス２００、実行プロセス２１０、アプリケーション実行プロセス２２０およびアプリケーションプロセス２３０が実装される。
【００１９】
なお、本発明の最良の実施の形態に係るアプリケーション実行方法は、図２に示すように２次記憶部１０及びメモリ２０を有する一つの計算機１内において実行されても良いし、互いに通信可能な複数の計算機において実行されても良い。
【００２０】
アプリケーション実行要求プログラム１００は、アプリケーションプログラムの実行要求をする。このアプリケーション実行要求プログラム１００は、図１に示す例では、ネイティブコード形式のロードモジュールとする。
【００２１】
実行プログラム１１０は、アプリケーションプログラムであるＪａｖａ（登録商標）プログラムを実行する。この実行プログラム１１０は、図１に示す例では、ネイティブコード形式のロードモジュールとする。
【００２２】
アプリケーション実行プログラム１２０は、アプリケーション実行要求により、アプリケーションプログラム１３０を提供する。このアプリケーション実行プログラム１２０は、図１に示す例では、クラス群データとしてバイトコード形式で記憶されている。ここで、バイトコード形式は、実行プログラム１１０により解釈実行可能な形式である。プリロード対象クラス名リストファイル１２１には、アプリケーション実行プロセス２２０でクラス群データを事前にロード（プリロード）する対象となるクラス群データを識別するクラス名が記述されている。アプリケーションプログラム１３０は、アプリケーション実行要求により、実行される。このアプリケーションプログラム１３０は、クラス群データとしてバイトコード形式で記憶されている。また、このクラス群データは、クラス名により識別される。
【００２３】
アプリケーション実行要求プロセス２００は、アプリケーション実行要求プログラム１００がオペレーティングシステムにより２次記憶部１０からメモリ２０上にロードされて実行される。アプリケーション実行要求プロセス２００は、実行要求がされたアプリケーションプログラムのクラス名を指定したアプリケーション実行要求を生成する。
【００２４】
実行プロセス２１０は、実行プログラム１１０がオペレーティングシステムにより２次記憶部１０からメモリ２０上にロードされて実行される。実行プロセス２１０上では、仮想プロセスである、アプリケーション実行プロセス２２０およびアプリケーションプロセス２３０が実行される。
【００２５】
アプリケーション実行プロセス２２０は、アプリケーション実行プログラム１２０およびアプリケーションプログラム１３０が実行プロセス２１０の制御により２次記憶部１０からメモリ２０上にロードされて実行される。アプリケーション実行プロセス２２０は、プリロード対象クラス名リスト２２１、プリロードクラス群データ２２２ａおよびクラスローダ２２２ｂを有している。
【００２６】
プリロード対象クラス名リスト２２１はプリロード対象となるクラス名が記述されている。プリロードクラス群データ２２２ａは２次記憶部１０のアプリケーションプログラム１３０からプリロードされたクラス群データが記憶されている。クラスローダ２２２ｂは、２次記憶部１０からメモリ２０にクラス群データをロードする。なお、各アプリケーションプログラムは１又は複数のクラス群データにより構成され、アプリケーションプログラムのロードはクラス群データとしてクラス単位で行われる。
【００２７】
図１に示す例では、プリロード対象クラス名リスト２２１は、初期状態においては２次記憶部１０に記憶されるプリロード対象クラス名リストファイル１２１が読み出されてメモリ２０上に生成されて使用されるとともに、アプリケーションプログラムの実行中に、アプリケーションプロセス２３０のクラスローダ２３１ｂによってクラス群データ名が追加される。しかしながら、このように２次記憶部１０にプリロード対象クラス名リストファイル１２１を有さず、初期状態においてはプリロード対象クラス名リストファイル１２１にはクラス名は記憶されていない状態であって、アプリケーションプログラムの実行中に、メモリ２０内でクラス名が蓄積されてプリロード対象クラス名リストファイル１２１が蓄積されていく方法であっても良い。
【００２８】
本発明の最良の実施の形態においてプリロードとは、アプリケーション実行要求がされる前に、アプリケーションプログラム１３０をメモリ２０上に事前にロードしておくことである。アプリケーション実行プロセス２２０では、アプリケーション実行要求を待たずに、アプリケーション実行用のアプリケーションプログラムのクラス群データをメモリ２０上にロードする。プリロードクラス群データ２２２ａでは、２次記憶部１０からロードされたアプリケーションプログラムのクラス群データが記憶されている。アプリケーション実行プロセス２２０は、複数のプリロードクラス群データ２２２ａを有する。たとえば、プリロードクラス群データ２２２ａの数が、予め指定された数よりも小さい場合、アプリケーション実行プロセス２２０において新たにクラスローダ２２２ｂが作成されてクラスのプリロードが行われ、プリロードクラス群データ２２２ａを増やすことが可能である。
【００２９】
なお、アプリケーション実行要求プロセス２００とアプリケーション実行プロセス２２０の間の通信手段は、たとえば、ＴＣＰ／ＩＰ、共有メモリ、パイプなど、任意の通信手段を用いることができる。
【００３０】
アプリケーションプロセス２３０は、アプリケーションプログラム１３０が実行プロセス２１０の制御により２次記憶部１０からメモリ２０上にロードされたクラス群データを用いて実行される。アプリケーションプロセス２３０は、クラス群データ２３１ａおよびクラスローダ２３１ｂを有している。クラス群データ２３１ａは、２次記憶部１０のアプリケーションプログラム１３０からロードされたクラス群データを記憶している。クラスローダ２３１ｂは、ロードされていないクラス群データを指定するアプリケーションプログラムの実行が要求された場合に生成され、２次記憶部１０からクラス群データを動的にロードする。また、クラスローダ２３１ｂは、クラス群データをロードするとともに、プリロード対象クラス名リスト２２１へクラス名を記述する。
【００３１】
なお、上述した図１に示す本発明の最良の形態に係るアプリケーションプログラムの実行方法は、１つの計算機１内においてオペレーティングシステムにより２次記憶部１０からメモリ２０上にアプリケーション実行要求プログラム１００がロードされたアプリケーション実行要求プロセスにより開始されている。しかし、これに限られず、たとえば、互いに通信可能な複数の計算機において実行されても良く、別の計算機で実行されたアプリケーション実行要求プログラムにより、開始する方法であってもよい。
【００３２】
また、実行プログラム１１０の形式は、ネイディブコード形式に限られる必要はない。
【００３３】
［アプリケーション実行処理］
次に、図３に示すフローチャートを用いて、本発明の最良の実施の形態に係るアプリケーション実行方法におけるアプリケーション実行処理を説明する。
【００３４】
アプリケーション実行プロセス２２０は、アプリケーション実行要求プロセス２００からアプリケーション実行要求の入力を待機している（Ｓ００１）。入力されるアプリケーション実行要求には、実行を要求するアプリケーションプログラムのリスト名が指定されている。
【００３５】
アプリケーション実行プロセス２２０は、アプリケーション実行要求が入力されると（Ｓ００１でＹＥＳ）、入力されたアプリケーション実行要求で指定されたリスト名のクラス群データが、プリロードクラス群データ２２２ａとして存在するか否かを確認する（Ｓ００２）。
【００３６】
入力されたアプリケーション実行要求で指定されたクラス名のクラス群データが、プリロードクラス群データ２２２ａに存在する場合（Ｓ００２でＹＥＳ）、プリロードクラス群データ２２２ａに記憶されているクラス群データを用いてアプリケーションプログラム１３０が実行される（Ｓ００３）。
【００３７】
その後、アプリケーションプログラムの実行が終了すると、アプリケーション実行プロセス２２０により、アプリケーションプログラムの実行で使用されたプリロードクラス群データ２２２ａおよび対応するクラスローダ２２２ｂは削除される（Ｓ００４）。
【００３８】
一方、受信したアプリケーション実行要求で指定されたアプリケーションプログラムのクラス名がプリロードクラス群データ２２２ａとして存在しない場合（Ｓ００２でＮＯ）、クラスローダ２３１ｂが新たに作成され、生成されたクラスローダ２３１ｂにより２次記憶部１０からメモリ２０にクラス群データがロードされてクラス群データ２３１ａが生成され、アプリケーションプログラムが実行される（Ｓ００５）。
【００３９】
その後、アプリケーションプログラムの実行が終了すると、アプリケーション実行プロセス２２０により、アプリケーションプログラムの実行で使用されたクラス群データ２３１ａおよび対応するクラスローダ２３１ｂは削除される（Ｓ００６）。
【００４０】
使用されたクラス群データが削除されるのは、クラス群データは使用により、その内容が変化する場合があるためである。
【００４１】
このように、プリロード対象クラス名リスト２２１で記憶されているクラス名のアプリケーションプログラムについて、プリロードクラス群データ２２２ａおよび対応するクラスローダ２２２ｂを用いて予めプリロードされたクラス群データを用いてアプリケーションプログラムを実行することにより、アプリケーションプログラムをロードする時間を削減し、アプリケーションプログラムの実行性能を向上させることができる。
【００４２】
また、アプリケーション実行プロセス２２０は、複数のクラス群データをプリロードクラス群データ２２２ａとして記憶することが可能であり、さらに、同一のクラス名のクラス群データを複数記憶することもできるため、同一のアプリケーションプログラムの実行要求が複数されるようなスレッド処理の場合であっても、アプリケーションプログラムの実行性能を向上させることができる。
【００４３】
さらに、プリロードしておくことで、インタプリタでロードする場合、オペレーティングシステムがロードするよりも遅いという問題点を改善することが可能になる。
【００４４】
［プリロード処理］
次に、図４に示すフローチャートを用いて、本発明の最良の実施の形態に係るアプリケーション実行方法におけるプリロード処理を説明する。
【００４５】
アプリケーション実行プロセス２２０で、プリロードクラス群データ２２２ａの数がプリロード最大数Ｌ以上であるか否かが判断される（Ｓ１０１）。ここで、プリロード最大数Ｌとは、アプリケーション実行プロセス２２０にプリロードされてプリロードクラス群データ２２２ａとして記憶されるクラス群データの最大の数である。
【００４６】
ステップＳ１０１において、現在のプリロードクラス群データ２２２ａの数がプリロード最大数Ｌに満たないと判断された場合（Ｓ１０１でＮＯ）、アプリケーション実行プロセス２２０は、プリロード対象クラス名リスト２２１を参照し、生成されたクラスローダ２２２ｂにより２次記憶部１０から対象となるクラス群データをロードする。また、アプリケーション実行プロセス２２０は、ロードしたクラス群データをプリロードクラス群データ２２２ａとしてメモリ２０に記憶する（Ｓ１０２）。
【００４７】
ステップＳ１０２でクラス群データがプリロードされると、ステップＳ１０１に戻り、プリロード最大数Ｌのプリロードクラス群データ２２２ａがメモリ２０に記憶されるまで、同様の処理が繰り返される。
【００４８】
一方、ステップＳ１０１の判断で、プリロード最大数Ｌのプリロードクラス群データ２２２ａが存在していた場合、プリロードする必要がないため、再び、ステップＳ１０１の処理を繰り返す。
【００４９】
このように、予めプリロード対象クラス名リスト２２１をプリロードしておくことで、アプリケーションプログラムの実行が要求されてから実行が終了するまでの実行時間を短縮させることが可能になる。
【００５０】
［プリロード負荷の調整処理］
プリロードクラス群データ２２２ａとして予めロードしておくクラス群データの数は、アプリケーションプログラムの実行時間に影響を与える。具体的には、より多くのクラス群データをプリロードしておけば、アプリケーション実行要求時にプリロードされたクラス群データを使用できる確率が高くなるためアプリケーションプログラムの実行時間が短くなる。しかしながら、プリロードクラス群データ２２２ａが多く記憶された場合には、メモリ２０のリソース等が多く必要になる。
【００５１】
一方、プリロードクラス群データ２２２ａの数を減らした際に短期間に多数のアプリケーション実行要求があった場合、プリロードクラス群データ２２２ａを使い果たすことがある。この場合、アプリケーション実行要求後にクラス群データをロードする必要があり、各アプリケーションプログラムの実行時間が長くなる。
【００５２】
このように、どの程度の頻度でアプリケーション実行要求が行われるかを事前に予測できない場合、たとえば、負荷に応じてプリロードするクラス群データの数を調節することでリソースの使用量を抑えつつ、アプリケーションプログラムの実行時間を短縮することができる。
【００５３】
図５に示すフローチャートを用いて、本発明の最良の実施の形態に係るアプリケーション実行方法におけるプリロード負荷の調整処理を説明する。
【００５４】
まず、アプリケーション実行プロセス２２０では、プリロード最大数Ｌ、ヒット回数Ｍおよびミス回数Ｎを初期化する（Ｓ２０１）。プリロード最大数Ｌ、ヒット回数Ｍおよびミス回数Ｎが初期化されると、アプリケーション実行プロセス２２０は、アプリケーション実行要求を待機する（Ｓ２０２）。
【００５５】
ここで、ヒットとは、実行要求がされたアプリケーションプログラムがプリロードされていた状態をいい、ヒット回数とは、実行要求がされたアプリケーションプログラムがプリロードされていた回数をいう。また、ミスとは、実行要求がされたアプリケーションプログラムがプリロードされていなかった状態をいい、ミス回数とは、実行要求がされたアプリケーションプログラムがプリロードされていなかった回数をいう。
【００５６】
アプリケーション実行プロセス２２０は、アプリケーション実行要求がされると（Ｓ２０２でＹＥＳ）、アプリケーションプログラム１３０の実行にプリロードクラス群データ２２２ａが使用されたか否かが確認される（Ｓ２０３）。
【００５７】
アプリケーションプログラム１３０の実行にプリロードクラス群データ２２２ａが使用されると（Ｓ２０３でＹＥＳ）、ヒットしたと判断してヒット回数Ｍに１を加える（Ｓ２０４）。一方、プリロードクラス群データ２２２ａが使用されずに、２次記憶部１０からクラス群データを新たにロードしてアプリケーションプログラムが実行されたことが確認されると（Ｓ２０３でＮＯ）、ミスしたと判断してミス回数Ｎに１を加える（Ｓ２０５）。
【００５８】
続いて、予め定められている規定式により求められた値Ｓを予め決められている閾値Ａ1と比較し、プリロード最大数Ｌを予め決められている下限値Ａ2と比較する（Ｓ２０６）。ここで、Ａ1≦Ｓであり、Ａ2∠Ｌである場合（ステップＳ２０６でＹＥＳ）、プリロード最大数Ｌを減少させ（Ｓ２０７）、プログラムの実行が終了していない場合に（Ｓ２１０でＮＯ）ステップＳ２０２に戻る。
【００５９】
一方、ステップＳ２０６でＮＯである場合、規定式により求められた値Ｓを予め決められている閾値Ｂ1と比較し、プリロード最大数Ｌを予め決められている上限値Ｂ2と比較する（Ｓ２０８）。Ｓ≦Ｂ1であり、Ｌ∠Ｂ2である場合（ステップＳ２０８でＹＥＳ）、プリロード最大数を増加させ（Ｓ２０９）、プログラムの実行が終了していない場合に（Ｓ２１０でＮＯ）ステップＳ２０２に戻る。
【００６０】
一方、ステップＳ２０８でＮＯである場合、プログラムの実行が終了していない場合に（Ｓ２１０でＮＯ）ステップＳ２０２に戻る。
【００６１】
ここで、値Ｓを求める規定式の一例として、以下の式１が考えられる。
【００６２】
Ｓ＝Ｍ÷（Ｍ＋Ｎ）  ・・・（式１）
このように、カウントされたヒット回数及びミス回数に基づいてプリロード最大数Ｌを変化させることにより、プリロード負荷を調整してアプリケーションプログラムの実行性能を向上させることが可能になる。
【００６３】
なお、ステップＳ２０７およびＳ２０９では、ヒット回数及びミス回数に基づいて、プリロード最大数Ｌを増減させることにより、プリロード負荷を調整している。しかしながら、プリロード負荷の調整は、上述した方法に限られず、たとえばスレッド処理をしていた場合のスレッド数を変更させたり、処理ウエイト時間を調整することにより行うことも可能である。
【００６４】
［変形例］
次に、図６に示すフローチャートを用いて、本発明の実施の形態に係るアプリケーション実行方法におけるプリロード負荷の調整処理の変形例を説明する。図６に示すのは、計算機１の中央処理制御装置３０１の負荷を検出し、検出された中央処理制御装置の負荷に基づいてプリロード最大数Ｌを調整する処理である。
【００６５】
まず、アプリケーション実行プロセス２２０は、中央処理制御装置３０１の負荷Ｐを検出する（Ｓ３０１）。
【００６６】
アプリケーション実行プロセス２２０は、中央処理制御装置３０１の負荷Ｐを検出すると、検出した負荷Ｐを予め規定されている上限値ＣMAXと比較して、ＣMAX∠Ｐであるか否かを判断する（Ｓ３０２）。
【００６７】
ステップＳ３０２における比較結果がＣMAX∠Ｐである場合、プリロード最大数Ｌを減少させる（Ｓ３０３）。
【００６８】
一方、ステップＳ３０２における比較結果がＣMAX∠Ｐでない場合、検出した負荷Ｐを予め規定されている下限値ＣMINと比較して、Ｐ∠ＣMINであるか否かを判断する（Ｓ３０４）。
【００６９】
Ｐ∠ＣMINである場合、プリロード最大数Ｌを増加させる（Ｓ３０５）。
【００７０】
このようにして、プリロード最大数Ｌを変化させることで、計算機１の中央処理制御装置３０１に負荷をかけること無く、他の処理に影響を与えずにプリロードを行うことができ、アプリケーションプログラムの実行性能を向上させることが可能になる。
【００７１】
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００７２】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明に記載した事項と自明な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７３】
【図１】本発明の最良の形態に係るアプリケーション実行方法を説明する図である。
【図２】本発明の最良の形態に係るアプリケーション実行方法を説明するハードウェアの構成を示す図である。
【図３】本発明の最良の形態に係るアプリケーション実行方法におけるアプリケーション実行処理を説明するフローチャートである。
【図４】本発明の最良の形態に係るアプリケーション実行方法におけるプリロード処理を説明するフローチャートである。
【図５】本発明の最良の形態に係るアプリケーション実行方法におけるプリロード負荷の調整処理を説明するフローチャートである。
【図６】本発明の変形例に係るアプリケーション実行方法におけるプリロード負荷調整処理を説明するフローチャートである。
【図７】一般的なＪａｖａ（登録商標）実行環境におけるアプリケーション実行方法を説明する図である。
【符号の説明】
【００７４】
１…計算機
１０…２次記憶部
２０…メモリ
１００…アプリケーション実行要求プログラム
１１０…実行プログラム
１２０…アプリケーション実行プログラム
１２１…プリロード対象クラス名リストファイル
１３０…アプリケーションプログラム
２００…アプリケーション実行要求プロセス
２１０…実行プロセス
２２０…アプリケーション実行プロセス
２２１…プリロード対象クラス名リスト
２２２ａ…プリロードクラス群データ
２２２ｂ…クラスローダ
２３０…アプリケーションプロセス
２３１ａ…クラス群データ
２３１ｂ…クラスローダ
３０１…中央処理制御装置
３０２…ＲＯＭ
３０３…ＲＡＭ
３０４…入力装置
３０５…表示装置
３０６…通信制御装置
３０７…記憶装置
３０８…リムーバブルディスク
３０９…入出力インタフェース
３１０…バス
【図１】
2006189944.tif 000003
【図２】
2006189944.tif 000004
【図３】
2006189944.tif 000005
【図４】
2006189944.tif 000006
【図５】
2006189944.tif 000007
【図６】
2006189944.tif 000008
【図７】
2006189944.tif 000009