"コンピュータが、第1のコードによって記述される第1プログラムの実行時の第1の消費電力を算出し、前記第1プログラムと同じ機能を有するとともに第2のコードによって記述される第2プログラムの実行時の第2の消費電力を算出し、前記第2の消費電力が前記第1の消費電力よりも小さいとき、前記第1プログラムを前記第2プログラムに変換して前記第2プログラムを実行することを特徴とするプログラム実行方法。前記第2の消費電力が前記第1の消費電力よりも大きいとき、前記第1プログラムを実行することを特徴とする請求項1に記載のプログラム実行方法。前記第2の消費電力は、前記第1プログラムの実行時間、前記第1プログラムを前記第2プログラムに変換するときの変換時間、および前記コンピュータに含まれるCPUの特性に基づいて算出されることを特徴とする請求項1または請求項2に記載のプログラム実行方法。前記変換時間は、前記第1プログラムの第1のコード量に基づいて算出されることを特徴とする請求項3に記載のプログラム実行方法。さらに、前記変換時間は、前記コンピュータに含まれるCPUの特性に基づいて算出されることを特徴とする請求項4に記載のプログラム実行方法。前記第1プログラムを前記第2プログラムに変換するときに設定される第2クロックの周波数を、前記第1プログラムを実行するときに設定される第1クロックの周波数よりも高く設定することを特徴とする請求項1乃至請求項5の何れか一に記載のプログラム実行方法。前記第2プログラムを実行するときに設定される第3クロックの周波数は、前記第1プログラムを実行するときに設定される第1クロックの周波数よりも低く設定されることを特徴とする請求項1乃至請求項6の何れか一に記載のプログラム実行方法。コンパイルスケジューラを起動し、前記コンパイルスケジューラが前記第1プログラムを前記第2プログラムに変換するか否かを判定することを特徴とする請求項1乃至請求項6の何れか一に記載のプログラム実行方法。前記第1プログラムを前記第2プログラムに変換する間に前記第1プログラムを実行し、前記変換終了後に前記第2プログラムを実行することを特徴とする請求項1乃至請求項7の何れか一に記載のプログラム実行方法。しかしながら、携帯端末のように端末によって性能が異なる場合、従来技術を用いれば消費電力を削減することはできても、電力要求がいずれの端末であっても同条件であれば、個々の端末の性能を引き出せない場合があるという問題点があった。本発明は、上述した従来技術による問題点を解消するため、消費電力を抑制しつつ、各端末の性能に沿ったコードでアプリケーションを実行するプログラム実行方法を提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一観点によれば、第1のコードによって記述される第1プログラムの実行時の第1の消費電力を算出し、前記第1プログラムと同じ機能を有するとともに第2のコードによって記述される第2プログラムの実行時の第2の消費電力を算出し、前記第2の消費電力が前記第1の消費電力よりも小さいとき、前記第1プログラムを前記第2プログラムに変換して前記第2プログラムを実行するプログラム実行方法が提案される。本発明の一観点によれば消費電力を抑制しつつ、各端末の性能に沿ったコードでアプリケーションを実行するという効果を奏する。以下に添付図面を参照して、本発明にかかるプログラム実行方法の実施の形態を詳細に説明する。本実施の形態では、第1のコードによって記述される第1のプログラムを対象アプリケーションのバイトコードと称する。第1のプログラムと同じ機能を有するとともに第2のコードによって記述される第2のプログラムを対象アプリケーションのネイティブコードと称する。図1は、本発明の一例を示す説明図である。ここでは、プログラム実行装置が、バイトコードからネイティブコードに変換しつつバイトコードで実行し、変換終了後にネイティブコードで実行する場合と、バイトコードで実行する場合と、のいずれの場合で消費電力が低くなるかを判断する。プログラム実行装置が、判断結果に基づいてバイトコードからネイティブコードに変換するか否かを決定する。グラフ100では、バイトコードからネイティブコードに変換しつつバイトコードで実行し、変換終了後にネイティブコードで実行する場合の消費電力を示している。グラフ101では、バイトコードで実行する場合の消費電力を示している。プログラム実行装置が、対象アプリケーションをダウンロードする。該対象アプリケーションに関する情報は、バイトコードと、バイトコードでの実行時間Tと、バイトコードのコード量Codeである。対象アプリケーションのバイトコードでの実行時間Tは、バイトコードでの実行時に要求される実行性能である。図1では、バイトコードでの実行性能と同一性能でネイティブコードでの実行を行った場合に、消費電力の値が小さくなるか否かを判断している。プログラム実行装置が、コード量を用いて、対象アプリケーションのバイトコードから対象アプリケーションのネイティブコードへの変換にかかる変換時間Tcを算出する。Tcは下記式1に基づいて算出される。Tc≒k×CodeC1ここで、kはCPUの性能とコンパイラの性能によって決まる比例係数である。CはCPUの性能とコンパイラの性能によって決まる定数である。つぎに、プログラム実行装置が、ネイティブコードからバイトコードへの変換後に、対象アプリケーションをバイトコードで実行する実行時間Tnを下記式2に基づいて算出する。Tn=T-Tc2つぎに、プログラム実行装置が、下記式3が成り立つ場合、対象アプリケーションのバイトコードをネイティブコードに変換すると決定する。下記式3が成り立たない場合、対象アプリケーションのバイトコードをネイティブコードに変換しないと決定する。Pc×TcPn×Tn<P×Tn3ここで、Pcはバイトコードからネイティブコードへの変換時の単位時間当たりの消費電力の値であり、Pnがネイティブコードでの実行時の単位時間当たりの消費電力の値であり、Pがバイトコードでの実行時の単位時間当たりの消費電力の値である。Pn<P<Pcである。バイトコードでの実行にはJavaVMを実行させなければならないため、バイトコードでの実行はネイティブコードでの実行よりも単位時間当たりの消費電力の値が大きくなる。また、Pn、P、Pcは、各端末が有するCPUの性能に沿ってあらかじめ決定されている。ここでのCPUの性能とは、具体的には、たとえば、計算能力や各実行時に供給されるクロックの周波数などである。グラフ100とグラフ101において、P×Tc斜線部は共通であるため、式3にはP×Tcが含まれていない。また、本実施の形態では、対象アプリケーションの実行時間に基づいて消費電力を算出している。占いアプリケーションなどの実行時間が予測可能なゲームやバナー上の広告などは実行時間が一定であるため、プログラム実行装置が、上述のようにバイトコードと併せて実行時間をダウンロードすることができる。アプリケーションの実行時間がアプリケーションの開発者によってHtmlHypertextmarkuplanguageに埋め込まれていてもよい。また、プログラム実行装置が、対象アプリケーションの実行時間の統計データから対象アプリケーションの実行時間を予測してもよい。本プログラム実行装置は、シングルコアシステムであってもマルチコアプロセッサシステムであってもよいが、本実施の形態ではマルチコアプロセッサシステムを例に挙げて説明する。ここで、マルチコアプロセッサシステムにおいて、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。マルチコアプロセッサシステムのハードウェア図2は、マルチコアプロセッサシステムのハードウェアを示す説明図である。図2において、マルチコアプロセッサシステム200は、CPU0と、CPU1と、ディスプレイ201と、キーボード202と、I/FInterFace203と、RAMRandamAccessMemory206と、を有している。さらに、マルチコアプロセッサシステム200は、フラッシュROMReadOnlyMemoryコントローラ204と、フラッシュROM205と、ROM207と、フラッシュROM208と、クロック供給回路209と、を有している。CPU0と、CPU1と、ディスプレイ201と、キーボード202と、I/F203と、フラッシュROMコントローラ204と、RAM206と、ROM207と、フラッシュROM208とは、バス212を介して接続されている。ここで、CPU0とCPU1は、それぞれレジスタとコアを有している。コアは、演算機能を有している。各CPU内のレジスタは、PCProgramCounterやリセットレジスタを有している。CPU0はマスタCPUであり、マルチコアプロセッサシステム200の全体の制御を司り、OS240を実行する。OS240はマスタOSであり、CPU0に割り当てられたアプリケーションを実行する。OS240はスケジューラを有し、スケジューラは起動指示を受け付けたアプリケーションをマルチコアプロセッサのうちのいずれのCPUに割り当てるかを制御する機能を有している。スケジューラはCPU0に割り当てられたアプリケーションの実行順序を制御する機能を有する。CPU1は、スレーブCPUであり、OS241を実行する。OS241は、スレーブOSであり、CPU1に割り当てられたアプリケーションを実行する。OS241は、スケジューラを有し、スケジューラはCPU1に割り当てられたアプリケーションの実行順序を制御する機能を有する。1次キャッシュ230と1次キャッシュ231とは、それぞれキャッシュメモリとキャッシュコントローラとを有している。1次キャッシュ230はOS240が実行するアプリケーションのスレッドからRAM206への書込処理を一時的に記憶する。1次キャッシュ230は、RAM206から読み出されたデータを一時的に記憶する。1次キャッシュ231はOS241が実行するアプリケーションのスレッドからRAM206への書込処理を一時的に記憶する。1次キャッシュ231は、RAM206から読み出されたデータを一時的に記憶する。1次キャッシュ230と1次キャッシュ231とが共有するデータがいずれか一方のキャッシュで更新された場合、スヌープコントローラ210は、該更新を検出し、他の1次キャッシュ内の該データも更新する機能を有している。2次キャッシュ211は、キャッシュメモリとキャッシュコントローラとを有している。2次キャッシュ211では、1次キャッシュ230や1次キャッシュ231から追い出されたデータを記憶する。2次キャッシュ211では、OS240とOS241とが共有するデータを記憶する。2次キャッシュ211は、1次キャッシュ230や1次キャッシュ231よりも、記憶容量が大きくかつ各CPUからのアクセス速度が遅い。2次キャッシュ211はRAM206よりも、記憶容量が小さくかつ各CPUからのアクセス速度が速い。ディスプレイ201は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ201は、たとえば、TFT液晶ディスプレイなどを採用することができる。キーボード202は、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード202は、タッチパネル式の入力パッドやテンキーなどであってもよい。I/F203は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワークに接続され、ネットワークを介して他の装置に接続される。そして、I/F203は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F203には、たとえばモデムやLANアダプタなどを採用することができる。本実施の形態では、I/F203を介してフラッシュROM208へアプリケーションをダウンロードしている。フラッシュROMコントローラ204と、フラッシュROM205と、RAM206と、ROM207と、フラッシュROM208とは、CPU0とCPU1に共有されるメモリである。図示していないが、メモリコントローラが、各CPUから各メモリへのアクセス要求を調停する。ROM207は、ブートプログラムなどのプログラムを記憶している。RAM206は、各CPUのワークエリアとして使用される。フラッシュROM208は、OS240やOS241などのシステムソフトウェアやアプリケーションのバイトコードやアプリケーションのネイティブコードを記憶している。フラッシュROMコントローラ204は、各CPUの制御に従ってフラッシュROMに対するデータのリード/ライトを制御する。フラッシュROM205は、フラッシュROMコントローラ204の制御で書き込まれたデータを記憶する。データの具体例としては、マルチコアプロセッサシステム200を使用するユーザがI/F203を通して取得した画像データ、映像データなどである。フラッシュROM205は、たとえば、メモリカード、SDカードなどを採用することができる。クロック供給回路209は、CPUなど各部へクロックを供給する。ここでは、クロック供給回路209がCPUへ供給可能なクロックの周波数は100[MHz]と200[MHz]と300[MHz]とする。クロック供給回路209は、レジスタ220とレジスタ221を有する。レジスタ220はCPU0へ与えるクロックの周波数を設定可能であり、レジスタ221はCPU1へ与えるクロックの周波数を設定可能である。レジスタ220の値が1であれば、CPU0へ与えるクロックの周波数が100[MHz]となり、レジスタ220の値が2であれば、CPU0へ与えるクロックの周波数が200[MHz]となる。レジスタ220の値が3であれば、CPU0へ与えるクロックの周波数が300[MHz]となる。レジスタ221の値が1であれば、CPU1へ与えるクロックの周波数が100[MHz]となり、レジスタ221の値が2であれば、CPU1へ与えるクロックの周波数が200[MHz]となる。レジスタ221の値が3であれば、CPU1へ与えるクロックの周波数が300[MHz]となる。マルチコアプロセッサシステム200の機能ブロック図図3は、マルチコアプロセッサシステム200の機能ブロック図である。マルチコアプロセッサシステム200は、取得部301と、変換時間算出部302と、第1の算出部303と、第2の算出部304と、判断部305と、変換部306と、実行部307と、制御部308と、を有している。具体的には、たとえば、フラッシュROM208などの記憶装置に取得部301~制御部308に関する処理がコーディングされたプログラムが記憶されている。マルチコアプロセッサのうちのCPUが該記憶装置にアクセスして該プログラムを読み出し、該プログラム内にコーディングされている処理を実行することにより、取得部301~制御部308に関する処理が実行される。本実施の形態では、該プログラムはOS240とOS241と後述するコンパイルスケジューラである。取得部301は、対象アプリケーションの機械語でないバイトコードから機械語であるネイティブコードへの変換にかかる変換時間Tcと、バイトコードでの実行時間Tを取得する。変換時間Tcについては、取得してもよいし算出してもよい。変換時間Tcを算出する場合には、取得部301は、バイトコードのコード量を取得する。変換時間算出部302は、変換時間Tcをバイトコードのコード量とCPUの性能とに応じて算出する。具体的には、たとえば、変換時間算出部302は、上記式2に基づいて算出する。第1の算出部303は、バイトコードでの実行時の第1の消費電力を算出する。具体的には、たとえば、第1の算出部303は、取得部301により取得された実行時間Tと変換時間算出部302により算出された変換時間Tcとの差分値Tnを算出する。第1の算出部303は、差分値Tnと、バイトコードでの実行時の単位時間当たりの消費電力の値Pとにより、バイトコードでの実行時の消費電力の値P×Tnを算出する。ここでは、バイトコードでの実行時の消費電力の値P×Tnが第1の消費電力である。第2の算出部304は、ネイティブコードでの実行時の第2の消費電力を算出する。具体的には、たとえば、第2の算出部304は、変換時間算出部302により算出された変換時間Tcと変換時の単位時間当たりの消費電力の値Pcとにより変換時間Tcでの消費電力の値Pc×Tcを算出する。そして、第2の算出部304は、差分値Tnと、ネイティブコードでの実行時の単位時間当たりの消費電力の値Pnとにより、ネイティブコードでの実行時の消費電力の値Pn×Tnを算出する。第2の算出部304は、第1の算出部303により算出された変換時間での消費電力の値と第2の算出部304により算出されたネイティブコードでの実行時の消費電力の値との加算値を算出する。ここでは、加算値が、第2の消費電力である。また、第2の算出部304では、バイトコードでの実行時の単位時間当たりの消費電力の値Pに対する変換時の単位時間当たりの消費電力の値Pcの比率Yに基づいて第2の消費電力を算出してもよい。さらに、第2の算出部304では、バイトコードでの実行時の単位時間当たりの消費電力の値Pに対する変換時の単位時間当たりの消費電力の値Pnの比率Xに基づいて第2の消費電力を算出してもよい。判断部305は、第2の算出部304により算出された加算値が、第1の算出部303により算出されたバイトコードでの実行時の消費電力の値未満となるか否かを判断する。変換部306は、判断部305によって加算値が算出されたバイトコードでの実行時の消費電力の値未満であると判断された場合、バイトコードをネイティブコードへ変換する。変換部306は、判断部305によって加算値が算出されたバイトコードでの実行時の消費電力の値未満でないと判断された場合、バイトコードをネイティブコードへ変換しない。実行部307は、判断部305によって加算値が算出されたバイトコードでの実行時の消費電力の値未満であると判断された場合、変換部306によるバイトコードからネイティブコードへの変換が終了するまで、バイトコードで実行する。そして、実行部307は、変換部306によりバイトコードからネイティブコードへの変換が終了すると、ネイティブコードで実行する。実行部307は、判断部305によって加算値が算出されたバイトコードでの実行時の消費電力の値未満でないと判断された場合、バイトコードで実行する。制御部308は、変換部306によりバイトコードをネイティブコードに変換するときに設定される動作クロックの周波数を、バイトコードでの実行時に設定される動作クロックの周波数よりも高く設定する。制御部308は、ネイティブコードで実行するときに設定されるクロックの周波数をバイトコードで実行するときに設定されるクロックの周波数よりも低く設定する。以上を踏まえて、実施例1,2を用いて詳細に説明する。実施例1では、PとPcとPnとを基づいてバイトコードからネイティブコードへ変換するか否かを決定する例を示す。実施例2では、XとYとに基づいてバイトコードからネイティブコードへ変換するか否かを決定する例を示す。実施例1図4は、割り当て管理テーブルの一例を示す説明図である。割り当て管理テーブル400には、各CPUにいずれのアプリが割り当てられているかが登録される。割り当て管理テーブル400は、CPUの識別情報の項目401と、アプリの識別情報の項目402と、を有している。CPUの識別情報の項目401には、CPUの識別情報が登録される。ここでは、CPU0とCPU1を示す識別情報が登録されている。アプリの識別情報の項目402には、CPUの識別情報の項目401に識別情報が登録された各CPUに割り当てられたアプリケーションの識別情報が登録される。割り当て管理テーブル400は、RAM206、1次キャッシュ230および1次キャッシュ231、2次キャッシュ211などの記憶装置に記憶されていることとする。図5は、実施例1で用いる消費電力テーブル一例を示す説明図である。消費電力テーブル500は、実行の項目501と、クロック周波数の項目502と、単位時間当たりの消費電力の項目503と、を有している。実行の項目501には、ネイティブコードでの実行と、バイトコードでの実行と、コンパイラの実行と、のいずれかが登録されている。クロック周波数の項目502には、実行の項目501に登録された実行に沿ったCPUへ供給するクロックの周波数が登録されている。単位時間当たりの消費電力の項目503には、実行の項目501に登録された実行時における単位時間当たりの消費電力が登録されている。消費電力テーブル500では、Pcが100[mW]であり、Pnが25[mW]であり、Pが50[mW]であるPn<P<Pc。消費電力テーブル500では、コンパイラを実行時にCPUへ与えるクロックの周波数Ccが300[MHz]であり、ネイティブコードでの実行時にCPUへ与えるクロックの周波数Cnは100[MHz]である。消費電力テーブル500では、バイトコードでの実行時にCPUへ与えるクロックの周波数Cbは200[MHz]である。CnとCbとCcとの関係は、Cn<Cb<Ccである。バイトコードではJavaVMがネイティブコードに変換しながら実行するため、バイトコードでの実行はネイティブコードでの実行と比較して処理量が多い。そのため、ネイティブコードでの実行時にバイトコードでの実行時よりもクロックの周波数が低くなっても、バイトコードでの実行時に要求された動作を満たすことができる。消費電力テーブル500は、RAM206、1次キャッシュ230および1次キャッシュ231、2次キャッシュ211などの記憶装置に記憶されていることとする。図6は、変換管理テーブルの一例を示す説明図である。変換管理テーブル600では、バイトコードからネイティブコードに変換すると決定されたアプリケーションの変換状態が管理される。変換管理テーブル600は、アプリの識別情報の項目601と変換状態の項目602を有している。アプリの識別情報の項目601には、バイトコードからネイティブコードに変換すると決定されたアプリケーションの識別情報が登録される。変換状態の項目602は、アプリの識別情報の項目601に識別情報が登録されたアプリケーションのバイトコードがネイティブコードへ変換されたか否かが登録される。変換が終了したアプリケーションに関する変換状態の項目602には、完了が登録され、変換が終了していないアプリケーションに関する変換状態の項目602には、未完了が登録される。変換管理テーブル600は、RAM206、1次キャッシュ230および1次キャッシュ231、2次キャッシュ211などの記憶装置に記憶されていることとする。図7は、アプリAのダウンロードを示す説明図である。OS240が、アプリAをI/F203を介してダウンロードする。ここでは、アプリAのバイトコードと、アプリAのバイトコードでの実行時間Tと、アプリAのバイトコードのコード量Codeとが、ダウンロードされる。そして、OS240が、コンパイルスケジューラ700を起動する。コンパイルスケジューラ700は、アプリケーションのバイトコードからCPU0やCPU1が解釈可能な機械語で示されたネイティブコードへ変換する機能を有する。コンパイルスケジューラ700が、ダウンロードされたアプリAの実行時間TとアプリAのコード量Codeを取得する。たとえば、TとCodeとkとCとが下記であるとする。T=500[ms]Code=160バイトk=0.5C=10コンパイルスケジューラ700が、上記式1に基づいてアプリAのバイトコード701からアプリAのネイティブコードへの変換時間Tcを算出し、上記式2に基づいて変換後のネイティブコードでの実行時間Tnを算出する。Tc=0.5×16010=90[ms]Tn=500[ms]-90[ms]=410[ms]コンパイルスケジューラ700が、消費電力テーブル500からPとPcとPnとを取得し、式3を判断する。上述のようにPcが100[mW]であり、Pnが25[mW]であり、Pが50[mW]である。式3の左辺=100[mW]×90[ms]25[mW]×410[ms]=19250式3の右辺=50[mW]×410[ms]=20500式3の左辺が式3の右辺よりも小さいので、式3が成り立つ。よって、コンパイルスケジューラ700が、アプリAのバイトコード701をアプリAのネイティブコードに変換すると決定する。コンパイルスケジューラ700が、決定結果をOS240へ通知する。図8は、変換管理テーブル600の登録例を示す説明図である。OS240が、決定結果を受け付けると、変換管理テーブル600のアプリの識別情報の項目601にアプリAの識別情報を登録し、変換状態の項目602に未完了を登録する。図9は、変換例を示す説明図である。OS240が、コンパイラ900をCPU1に割り当てる。OS241が、コンパイラ900の割り当てを受け付けると、クロック供給回路209のレジスタ221を3に設定することにより、CPU1に供給されるクロックの周波数がCc=300[MHz]となるように制御する。OS241がコンパイラ900を実行し、コンパイラ900がアプリAのバイトコード701をアプリAのネイティブコード901に変換する。OS240が、JavaVM902をCPU0に割り当てて、クロック供給回路209のレジスタ220を2に設定することにより、CPU0に供給されるクロックの周波数がC=200[MHz]となるように制御する。OS240が、JavaVM902上でアプリAをアプリAのバイトコード701で実行する。図10は、コンパイラ900とアプリAの割り当てによる割り当て管理テーブル400の更新例を示す説明図である。割り当て管理テーブル400のCPUの識別情報の項目401がCPU0であるアプリの識別情報の項目402にJavaVM:アプリAを登録する。JavaVM:アプリAとは、JavaVM902によってアプリAが実行されていることを示す。割り当て管理テーブル400のCPUの識別情報の項目401がCPU1であるアプリの識別情報の項目402にコンパイラ900を登録する。図11は、コンパイル終了例を示す説明図である。アプリAのバイトコード701からアプリAのネイティブコード901への変換が終了する。コンパイラ900が変換管理テーブル600のアプリの識別情報の項目601がアプリAである変換状態の項目602に完了を登録する。そして、コンパイラ900が終了する。図12は、変換終了後の変換管理テーブル600の更新例を示す説明図である。変換管理テーブル600は、アプリの識別情報の項目601がアプリAである変換状態の項目602に完了が登録されている。図11に戻って、コンパイラ900が終了すると、他にCPU1へ割り当てられているアプリケーションのスレッドがないため、OS241がクロック供給回路209のレジスタ221の値を1に設定する。これにより、CPU1へ与えられるクロックの周波数が100[MHz]となる。OS241が割り当て管理テーブル400のCPUの識別情報の項目401がCPU1であるアプリの識別情報の項目402からコンパイラ900を削除する。OS240が、アプリAのバイトコード701からアプリAのネイティブコード901への変換終了通知を受け付けると、JavaVM902を終了させる。OS240が、クロック供給回路209のレジスタ220の値を1に設定する。これにより、CPU0へ与えられるクロックの周波数が100[MHz]となる。OS240が、アプリAをアプリAのネイティブコード901で実行する。OS240が、割り当て管理テーブル400のCPUの識別情報の項目401がCPU0であるアプリの識別情報の項目402からJavaVM:アプリAを削除して、アプリAを登録する。図13は、変換終了後の割り当て管理テーブル400の更新例を示す説明図である。割り当て管理テーブル400では、CPUの識別情報の項目401がCPU1であるアプリの識別情報の項目402からコンパイラ900が削除されている。割り当て管理テーブル400では、CPUの識別情報の項目401がCPU0であるアプリの識別情報の項目402にアプリAが登録されている。ダウンロード時の各OSによる変換制御処理図14は、ダウンロード時の各OSによる変換制御処理手順の一例を示すフローチャートである。ダウンロードに関しては、いずれのOSが行ってもよい。OSが、対象アプリケーションをダウンロードするとステップS1401、コンパイルスケジューラ700を起動するステップS1402。OSが、コンパイルスケジューラ700から決定結果を受け付けたか否かを判断するステップS1403。OSが、コンパイルスケジューラ700から決定結果を受け付けていないと判断した場合ステップS1403:No、ステップS1403へ戻る。OSが、コンパイルスケジューラ700から決定結果を受け付けたと判断した場合ステップS1403:Yes、決定結果がダウンロードしたアプリケーションを変換することを示すか否かを判断するステップS1404。OSが、決定結果がダウンロードしたアプリケーションを変換することを示している場合ステップS1404:Yes、負荷が小さいCPUにコンパイラ900を割り当てステップS1405、ステップS1406へ移行する。ステップS1404において、OSが、決定結果がダウンロードしたアプリケーションを変換しないことを示している場合ステップS1404:No、ステップS1406へ移行する。OSが、ダウンロードしたアプリケーションを負荷が小さいCPUによりJavaVM上で実行しステップS1406、一連の処理を終了する。実施例1にかかるコンパイルスケジューラ700による変換制御処理手順図15は、実施例1にかかるコンパイルスケジューラ700による変換制御処理手順の一例を示すフローチャートである。コンパイルスケジューラ700が、対象アプリケーションの実行時間Tとコード量Codeを取得しステップS1501、Tc=k×CodeCを算出しステップS1502、Tn=T-Tcを算出するステップS1503。コンパイルスケジューラ700が、Pと、Pcと、Pnとを取得しステップS1504、Pc×TcPn×Tn<P×Tnであるか否かを判断するステップS1505。コンパイルスケジューラ700が、Pc×TcPn×Tn<P×Tnであると判断した場合ステップS1505:Yes、ネイティブコードへ変換すると決定するステップS1506。コンパイルスケジューラ700が、Pc×TcPn×Tn<P×Tnでないと判断した場合ステップS1505:No、ネイティブコードへ変換しないと決定するステップS1507。コンパイルスケジューラ700が、ステップS1506、ステップS1507のつぎに、決定結果をOSへ通知しステップS1508、一連の処理を終了する。各OSによるプログラム実行処理手順図16は、各OSによるプログラム実行処理手順を示すフローチャートである。OSが、ディスパッチまたはスイッチ、または処理終了を検出したか否かを判断するステップS1601。OSが、ディスパッチまたはスイッチ、および処理終了を検出していないと判断した場合ステップS1601:No、ステップS1601へ戻る。OSが、ディスパッチまたはスイッチを検出したと判断した場合ステップS1601:ディスパッチまたはスイッチ、ステップS1602へ移行する。OSが、ディスパッチまたはスイッチされたアプリケーションがネイティブコードへ変換するアプリケーション、またはコンパイラ900であるか否かを判断するステップS1602。OSが、ディスパッチまたはスイッチされたアプリケーションがネイティブコードへ変換するアプリケーション、およびコンパイラ900でないと判断した場合ステップS1602:No、クロックの周波数をCbに設定するステップS1603。そして、OSが、JavaVM上でアプリケーションをバイトコードで実行しステップS1604、ステップS1601へ戻る。OSが、ディスパッチまたはスイッチされたアプリケーションがネイティブコードへ変換するアプリケーションであると判断した場合ステップS1602:変換、ネイティブコードに変換済か否かを判断するステップS1605。OSが、ネイティブコードに変換済でないと判断した場合ステップS1605:No、ステップS1603へ移行する。OSが、ネイティブコードに変換済であると判断した場合ステップS1605:Yes、クロックの周波数をCnに設定しステップS1606、アプリケーションをネイティブコードで実行しステップS1607、ステップS1601へ戻る。OSが、ディスパッチまたはスイッチされたアプリケーションがコンパイラ900であると判断した場合ステップS1602:コンパイラ、クロックの周波数をCcに設定するステップS1608。OSが、コンパイラ900を実行しステップS1609、ステップS1601へ戻る。OSが、処理終了を検出したと判断した場合ステップS1601:処理終了、処理終了が検出されたアプリケーションはコンパイラ900であるか否かを判断するステップS1610。OSが、処理終了が検出されたアプリケーションはコンパイラ900であると判断した場合ステップS1610:Yes、変換管理テーブル600を更新しステップS1611、すべてのアプリケーションの処理が終了したか否かを判断するステップS1612。OSが、すべてのアプリケーションの処理が終了していないと判断した場合ステップS1612:No、ステップS1601へ戻る。OSが、すべてのアプリケーションの処理が終了したと判断した場合ステップS1612:Yes、一連の処理を終了する。ステップS1610において、処理終了が検出されたアプリケーションはコンパイラ900でないと判断した場合ステップS1610:No、ステップS1612へ移行する。実施例2図17は、実施例2にかかる判断例を示す説明図である。実施例2では、PcをY×Pとし、PnをX×Pとする。すなわち、Xは、バイトコードでの実行時の単位時間当たりの消費電力の値に対するネイティブコードでの実行時の単位時間当たりの消費電力の値の比率である。Yは、バイトコードでの実行時の単位時間当たりの消費電力の値に対するコンパイラ900を実行時の単位時間当たりの消費電力の値の比率である。グラフ1700では、バイトコードからネイティブコードに変換しつつバイトコードで実行し、変換終了後にネイティブコードで実行する場合の消費電力を示している。グラフ1701では、バイトコードで実行する場合の消費電力を示している。図17については、下記式4のように表すことができる。P×TcY×P×TcX×P×Tn<P×T4ここで、TcとTnについてはそれぞれ上述の式1,2により算出される。そして、式4はPで共通化されると、下記式5の様になる。1Y×TcX×Tn<T5コンパイルスケジューラ700は、式5が成り立てば、バイトコードからネイティブコードへ変換すると決定する。コンパイルスケジューラ700は、式5が成り立たなければ、バイトコードからネイティブコードへ変換しないと決定する。実施例2では、実施例1と同様にアプリAがダウンロードされた場合において、式3に代わって前述した式4または式5が成り立つか否かによって、アプリAのバイトコード701をアプリAのネイティブコード901へ変換するか否かを決定する。実施例2では、OS240やOS241の処理については実施例1で示した処理と同一であるため、コンパイルスケジューラ700の処理のみ詳細に説明する。また、XとYについてはあらかじめ消費電力テーブルに格納されていることとする。図18は、実施例2で用いる消費電力テーブルの一例を示す説明図である。消費電力テーブル1800は、実行の項目1801と、クロック周波数の項目1802と、比率の項目1803と、を有している。実行の項目1801には、ネイティブコードでの実行と、バイトコードでの実行と、コンパイラの実行と、が登録されている。クロック周波数の項目1802には、実行の項目1801に登録された実行時にCPUへ供給するクロックの周波数が登録されている。消費電力テーブル1800では、コンパイラ900の実行時にCPUへ与えるクロックの周波数Ccが300[MHz]であり、ネイティブコードでの実行時にCPUへ与えるクロックの周波数Cnは100[MHz]である。消費電力テーブル1800では、バイトコードでの実行時にCPUへ与えるクロックの周波数Cbは200[MHz]である。Cn<Cb<Ccである。比率の項目1803には、バイトコードでの実行時の単位時間当たりの消費電力と実行の項目1801に登録された実行時の単位時間当たりの消費電力との比率が登録されている。PcY×Pが100[mW]であり、PnX×Pが25[mW]であり、Pが50[mW]であるため、消費電力テーブル1800では、X0<X<1が1/2であり、Y1>Yが2である。消費電力テーブル1800は、RAM206、1次キャッシュ230および1次キャッシュ231、2次キャッシュ211などの記憶装置に記憶されていることとする。TcとTnは実施例1と同様に下記とする。Tc=90[ms]Tn=410[ms]コンパイルスケジューラ700が、消費電力テーブル1800からXとYとを取得し、式5を判断する。式5の左辺=12×90[ms]1/2×410[ms]=270205=475式5の右辺=500[ms]式5の左辺が式5の右辺よりも小さいので、式5が成り立つため、コンパイルスケジューラ700が、アプリAのバイトコード701をアプリAのネイティブコード901に変換すると決定する。コンパイルスケジューラ700が、決定結果をOSへ通知する。OSが決定結果を受け付け後の処理については実施例1と同一であるため、詳細な説明を省略する。つぎに、各OSによるプログラム実行処理手順やコンパイルスケジューラ700によるプログラム変換制御処理手順について説明する。実施例2にかかる各OSのプログラム実行処理手順については実施例1で説明した各OSのプログラム実行処理手順と同一であるため、詳細な説明は省略する。実施例2にかかるコンパイルスケジューラ700による変換制御処理手順図19は、実施例2にかかるコンパイルスケジューラ700による変換制御処理手順の一例を示すフローチャートである。コンパイルスケジューラ700が、対象アプリケーションの実行時間Tと対象アプリケーションのバイトコードのコード量Codeを取得しステップS1901、Tc=k×CodeCを算出しステップS1902、Tn=T-Tcを算出するステップS1903。コンパイルスケジューラ700が、XとYを取得しステップS1904、1YTcX×Tn<Tであるか否かを判断するステップS1905。コンパイルスケジューラ700が、1YTcX×Tn<Tであると判断した場合ステップS1905:Yes、ネイティブコードへ変換すると決定するステップS1906。コンパイルスケジューラ700が、1YTcX×Tn<Tでないと判断した場合ステップS1905:No、ネイティブコードへ変換しないと決定するステップS1907。コンパイルスケジューラ700が、ステップS1906、ステップS1907のつぎに、決定結果をOSへ通知しステップS1908、一連の処理を終了する。以上説明したように、プログラム実行方法によれば、対象アプリケーションのバイトコードをネイティブコードに変換して対象アプリケーションを実行するか否かを、各コードでの実行時の消費電力の値に基づいて決定する。これにより、消費電力を抑制することができ、ネイティブコードに変換して対象アプリケーションを実行する場合、各端末の性能に沿ったコードでアプリケーションを実行させることができる。また、バイトコードでの実行時の消費電力の値が、ネイティブコードでの実行時の消費電力の値よりも小さいとき、対象アプリケーションのバイトコードをネイティブコードに変換せず、対象アプリケーションをバイトコードで実行する。これにより、消費電力を抑制することができる。また、ネイティブコードでの実行時の消費電力の値を、対象アプリケーションの実行時間とバイトコードからネイティブコードへの変換時間と、CPUの性能とに基づいて算出する。これにより、各CPUの性能によって異なる単位時間値の消費電力の値によってネイティブコードでの実行時の消費電力の値が変化することが表され、各端末の性能に沿ったコードでアプリケーションを実行させることができる。また、変換時間は、バイトコードのコード量に基づいて算出する。これにより、コード量が増えると、コンパイラによる変換時間が長くなるため、ネイティブコードでの実行時に消費電力の値が増加することを表すことができる。したがって、実行前に算出するネイティブコードでの実行時に消費電力の値の精度を向上させることができる。また、変換時間は、CPUの特性に基づいて算出する。CPUの特性によってはコンパイラによる変換に時間がかかり変換時間が長くなる。すなわち、端末によって変換時間が変わることが表され、実行前に算出するネイティブコードでの実行時に消費電力の値の精度を向上させることができる。さらに、変換時間が端末によって変わるため、端末の性能によって変換するか否かが異なり、各端末の性能に沿ったコードでアプリケーションを実行させることができる。また、バイトコードからネイティブコードへの変換時にCPUへ与えられるクロックの周波数を、バイトコードでの実行時にCPUへ与えられるクロックの周波数よりも高くする。変換とバイトコードでの実行とを同時に行うと消費電力が増大するが、変換時のクロック周波数が高くなることで、変換時間を短縮することができ、消費電力を削減することができる。また、ネイティブコードでの実行時にCPUへ与えられるクロックの周波数を、バイトコードでの実行時にCPUへ与えられるクロックの周波数よりも低くする。ネイティブコードでの実行は、バイトコードでの実行よりも処理量が少ないため、ネイティブコードでの実行時にクロックの周波数が低くても、バイトコードでの実行時に要求された動作を満たすことができる。よって、ネイティブコードでの実行時にクロックの周波数を低くすることで、消費電力を抑制することができる。また、コンパイルスケジューラが、バイトコードからネイティブコードに変換するか否かを判断することで、OSの実行に負荷がかかるのを防止することができる。また、バイトコードからネイティブコードへの変換中に、アプリケーションをバイトコードで実行する。変換終了後にアプリケーションをネイティブコードで実行することにより、ダウンロードしてすぐにアプリケーションを実行させる場合に、ユーザの応答性を向上させることができる。なお、プログラム実行方法は、あらかじめ用意されたプログラムをマルチコアプロセッサのうちのいずれかのCPUで実行することにより実現することができる。たとえば、実施例1,2では該プログラムはOS240やOS241やコンパイルスケジューラ700に含まれている。また、該プログラムは、フラッシュROM205などのマルチコアプロセッサのいずれかのCPUが読み取り可能な記録媒体に記録され、マルチコアプロセッサのいずれかのCPUによって記録媒体から読み出されることによって実行されてもよい。また、該プログラムは、インターネット等のネットワークを介して配布されてもよい。"