## 10.10.1 コマンドライン・インターフェース

コマンドラインからプログラムとして呼び出す場合は、次の書式を使います。

    python timeit.py [-n N] [-r N] [-s S] [-t] [-c] [-h] [statement ...]

以下のオプションが使用できます。

-n N/--number=N
  'statement' を何回実行するか
-r N/--repeat=N
  タイマを何回リピートするか(デフォルトは 3)
-s S/--setup=S
  最初に1回だけ実行する文 (デフォルトは `'pass'`)
-t/--time
  `time.time()` を使用する (Windows を除くすべてのプラットフォームのデフォルト)
-c/--clock
  `time.clock()` を使用する(Windows のデフォルト)
-v/--verbose
  時間計測の結果をそのまま詳細な数値でくり返し表示する
-h/--help
  簡単な使い方を表示して終了する

文は複数行指定することもできます。その場合、各行は独立した文として引数 に指定されたものとして処理します。クォートと行頭のスペースを使って、イ ンデントした文を使うことも可能です。この複数行のオプションは -s においても同じ形式で指定可能です。

オプション -n でループの回数が指定されていない場合、10回 から始めて、所要時間が 0.2 秒になるまで回数を増やすことで適切なループ 回数が自動計算されるようになっています。

デフォルトのタイマ関数はプラットフォーム依存です。Windows の場合、 `time.clock()` はマイクロ秒の精度がありますが、 `time.time()` は 1/60 秒の精度しかありません。一方 Unixの場 合、`time.clock()` でも 1/100 秒の精度があり、 `time.time()` はもっと正確です。いずれのプラットフォームにお いても、デフォルトのタイマ関数は CPU 時間ではなく通常の時間を返します。 つまり、同じコンピュータ上で別のプロセスが動いている場合、タイミングの 衝突する可能性があるということです。正確な時間を割り出すために最善の方 法は、時間の取得を数回くり返しその中の最短の時間を採用することです。 -r オプションはこれをおこなうもので、デフォルトのくり返し 回数は3回になっています。多くの場合はデフォルトのままで充分でしょう。 Unixの場合 `time.clock()` を使って CPU 時間で測定することも できます。

注意: pass 文の実行による基本的なオーバーヘッドが存在することに注意してく ださい。ここにあるコードはこの事実を隠そうとはしておらず、注意を払う 必要があります。基本的なオーバーヘッドは引数なしでプログラムを起動す ることにより計測できます。

基本的なオーバヘッドは Python のバージョンによって異なります。Python 2.3 とそれ以前の Python の公平な比較をおこなう場合、古い方の Python は -O オプションで起動し `SET_LINENO` 命令の実行時間が 含まれないようにする必要があります。