平成16年秋期試験午前問題 問44

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。

〔条件〕
  • 実行時間はプログラムの行数に比例する。
  • 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。
  • コンパイル時間は100行当たり0.1秒掛かる。
  • コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。
  • プログラムファイルのダウンロード時間など,その他の時間は無視して考える。
 

  • 50
  • 75
  • 125
  • 155
正解 問題へ
分野:テクノロジ系
中分類:ソフトウェア
小分類:開発ツール
プログラムの行数をL(100行単位)とするとコンパイル時間を含む処理時間は、

インタプリタ方式の場合、実行時の処理時間だけなので

 0.2×L=0.2L

コンパイル方式では、コンパイル時間+オーバヘッド時間+実行時の処理時間の合計になるので、

 0.1L+0.15+0.003L
=0.1L+0.15++0.003L
0.103L+0.15

となります。

次にコンパイル方式とインタプリタ方式の処理時間が同じになるプログラム行数を方程式を用いて求めます。

 0.2L=0.103L+0.15
 0.097L=0.15
 L≒1.55

Lは100行単位なので、実際のプログラムの行数に直すと、

 100×1.55=155行

インタプリタ方式とコンパイル方式の処理時間が同じになる行数は155行であり、これを境にコンパイル方式の処理時間がインタプリタ方式より短くなっていることがわかります。

この問題の出題歴


Pagetop