基本情報技術者試験 - 令和6年6月修了 - 問14
Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。
〔条件〕
(1)実行時間はプログラムの行数に比例する。
(2)同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。
(3)コンパイル時間は100行当たり0.1秒掛かる。
(4)コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。
(5)プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。
〔条件〕
(1)実行時間はプログラムの行数に比例する。
(2)同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒掛かり,コンパイルしてから実行すると0.003秒掛かる。
(3)コンパイル時間は100行当たり0.1秒掛かる。
(4)コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力,コンパイラ起動などのために常に0.15秒のオーバヘッドが掛かる。
(5)プログラムファイルのダウンロード時間など,そのほかの時間は無視して考える。
| ア | 50 |
|---|---|
| イ | 75 |
| ウ | 125 |
| エ | 155 |
答え : エ
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › 開発ツール
解説 :
条件をもとに損益分岐点となる行数を求める計算問題です。インタプリタ方式の実行時間は100行あたり0.2秒なので1行あたり0.002秒,コンパイル方式の実行時間は100行あたり0.003秒なので1行あたり0.00003秒です。コンパイル時間は100行あたり0.1秒なので1行あたり0.001秒,さらに固定のオーバーヘッドが0.15秒かかります。
行数をnとすると,インタプリタの総時間は0.002n,コンパイル方式の総時間は 0.00003n+0.001n+0.15 です。コンパイル方式が短くなる条件は 0.002n > 0.00003n+0.001n+0.15 を解くと n > 約155 になります。従って,正解は「エ」です。連立不等式を丁寧に立てて解くことが求められる計算問題です。
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › 開発ツール
解説 :
条件をもとに損益分岐点となる行数を求める計算問題です。インタプリタ方式の実行時間は100行あたり0.2秒なので1行あたり0.002秒,コンパイル方式の実行時間は100行あたり0.003秒なので1行あたり0.00003秒です。コンパイル時間は100行あたり0.1秒なので1行あたり0.001秒,さらに固定のオーバーヘッドが0.15秒かかります。
行数をnとすると,インタプリタの総時間は0.002n,コンパイル方式の総時間は 0.00003n+0.001n+0.15 です。コンパイル方式が短くなる条件は 0.002n > 0.00003n+0.001n+0.15 を解くと n > 約155 になります。従って,正解は「エ」です。連立不等式を丁寧に立てて解くことが求められる計算問題です。