- トップページ
- 基本情報技術者
- 平成23年度特別問題一覧
- 平成23年度特別問題23-解答・解説-分析
平成23年度特別問題
問題23
Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリ夕方式よりも処理時間(コンパイル時間も含む)が短くなるか。
〔条件〕
(1) | 実行時間はプログラムの行数に比例する。 |
(2) | 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。 |
(3) | コンパイル時間は100行当たり0.1秒掛かる。 |
(4) | コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。 |
(5) | プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。 |
ア | 50 |
イ | 75 |
ウ | 125 |
エ | 155 |
Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリ夕方式よりも処理時間(コンパイル時間も含む)が短くなるか。
〔条件〕
(1) | 実行時間はプログラムの行数に比例する。 |
(2) | 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。 |
(3) | コンパイル時間は100行当たり0.1秒掛かる。 |
(4) | コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。 |
(5) | プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。 |
ア | 50 |
イ | 75 |
ウ | 125 |
エ | 155 |
解答:エ
<解説>
- インタプリタ
- ソースコードを1行ずつ機械語に変換しながら実行するプロセッサ
- コンパイラ
- ソースコードを一括で機械語に変換(コンパイル)してから実行するプロセッサ
- プログラム行数をaとする。コンパイラ方式の処理時間=実行時間+コンパイル時間+オーバヘッドより
0.003÷100×a+0.1÷100×a+0.15 - プログラム行数をaとする。インタプリタ方式の処理時間=実行時間より
0.2÷100×a - コンパイラ方式の処理時間<インタプリタ方式の処理時間より、
( 0.003 ÷ 100 )× a +( 0.1 ÷ 100 )× a +( 0.15 )<( 0.2 ÷100 )× a - a > 約 154.64≒155となり、155行以上であればコンパイラ方式の方が早いことになる。
分類
お問い合わせ