ソフトウェア
基本情報技術者試験 科目A免除 修了試験 20180610 実施分 問20
Java などのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。
〔条件〕
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ 100 行のバイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり,コンパイルしてから実行すると 0.003 秒掛かる。
(3) コンパイル時間は 100 行当たり 0.1 秒掛かる。
(4) コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
(5) プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20180610 実施分 問20(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:エ
覚える知識
インタプリタ方式とコンパイル方式の処理時間比較計算
両方式の総処理時間の式を立て、不等式から損益分岐の行数を求める。
この問題で必要なこと
行数x。インタプリタ0.002x、コンパイル 0.15+0.001x+0.00003x。0.002x>0.15+0.00103x より x>約155。
ひっかけ
コンパイル時間や固定オーバヘッドの入れ忘れを誘う。
この知識の出題:本試験系 1 回・免除試験 7 回(公開問題での観測値)。頻出知識ランキング430位(全1,254件中)。
同じ問題が出た回
- 基本情報技術者試験 科目A免除 修了試験 20240609 実施分 問14
- 基本情報技術者試験 科目A免除 修了試験 20120624 実施分 問25
- 平成23年度 特別試験 基本情報技術者試験 午前 問23