トップ過去問一覧基本情報技術者 平成23年・春 > 問23
問23

Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。

 

〔条件〕

(1)実行時間はプログラムの行数に比例する。

(2)同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。

(3)コンパイル時間は100行当たり0.1秒掛かる。

(4)コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。

(5)プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。

○正解
×不正解

50

75

125

155

解説

コードの行数をxとします。

インタプリタ方式での所要時間をtiミリ秒とすると

ti=200×(x/100)

  =2x

コンパイル方式での所要時間(コンパイル時間+オーバヘッド+実行時間)をtcミリ秒とすると

tc=100×(x/100)+150+3×(x/100)

  =1.03x+150

インタプリタ方式よりもコンパイル方式での方が、処理時間が短くなる不等式を作ります。

ti>tc

2x>1.03x+150

0.97x>150

x>154.639…

コードの行数は整数であるため、最低155行必要であることがわかります。

無料学習システムはこちら
→間違えた問題を繰り返し学習
→分野別学習
→模擬試験モード
デモサイト
無料ユーザ登録

問題文や解説文の内容の正確性については、できるかぎりチェックをしていますが、間違いがある可能性があります。 十分ご注意の上、参考までにご利用ください。