BENCHMARK(3)             USER COMMANDS               BENCHMARK(3)



NAME
     Benchmark - コードの実行時間のベンチマークを行なう

     timethis - コードを何回か実行する

     timethese - いくつかのコードを何回か実行する

     timeit - コードを実行し、時間を計測する

SYNOPSYS
         timethis ($count, "code");

         timethese($count, {
             'Name1' => '...code1...',
             'Name2' => '...code2...',
         });

         $t = timeit($count, '...other code...')
         print "$count loops of other code took:",timestr($t),"\n";


DESCRIPTION
     Benchmark モジュールは、コードの実行時間を計測する手助けをす
     るルーティン群をカプセル化するものです。

     メソッド

     new       現在時刻を返します。 たとえば:

                   use Benchmark;
                   $t0 = new Benchmark;
                   # ... ここにコードを置きます ...
                   $t1 = new Benchmark;
                   $td = timediff($t1, $t0);
                   print "the code took:",timestr($dt),"\n";


     debug     $Benchmark::debug フラグを設定することによって、デ
               バッグを許可したり、許可を解除したりします:

                   debug Benchmark 1;
                   $t = timeit(10, ' 5 ** $Global ');
                   debug Benchmark 0;


     標準エクスポート

     以下のルーティンは、Benchmark モジュールを使うときに、現在の
     名前空間へエクスポートされます:

     timeit(COUNT, CODE)
               引数: COUNT は、ループの実行回数で、CODE は実行す



Perl module manpages Last change: Release 5.0 Patchlevel 00     1






BENCHMARK(3)             USER COMMANDS               BENCHMARK(3)



               るコードです。 CODE には、コードを含む文字列、実
               行するサブルーティンへのリファレンス、名前を key、
               別の CODE 記述を value とするハッシュへのリファレ
               ンスを記述できます。

               副作用: 標準出力にゴミを書きます。

               返却値: Benchmark オブジェクトを返します。

     timethis

     timethese

     timediff

     timestr

     オプションエクスポート

     以下のルーティンは、特にインポートを要求するときに、現在の名
     前空間へエクスポートされます:

     clearcache

     clearallcache

     disablecache

     enablecache

NOTES
     データは、time 関数や times 関数による値のリストとして

           ($real, $user, $system, $children_user, $children_system)

     (各々の繰り返しごとではなく) ループ全体を秒数で計測して蓄え
     られます。

     計時は、time(3) と times(3) を使って行なわれます。

     コードは、呼びもとのパッケージで実行されます。

     デバッグを有効にするには、

         $Benchmark::debug = 1;

     とします。

     空ループ (繰り返し数は同じですが、空のループ) の時間が、実際
     のループの時間から差し引かれます。

     計算された空ループの実行時間は、繰り返しの数をキーとして、キ



Perl module manpages Last change: Release 5.0 Patchlevel 00     2






BENCHMARK(3)             USER COMMANDS               BENCHMARK(3)



     ャッシングされます。 キャッシングは、以下のようなサブルーテ
     ィンの呼び出しで制御することができます。

         clearcache($key);
         clearallcache();

         disablecache();
         enablecache();


INHERITANCE
     Benchmark は、Exporter からは当然継承を行なっていますが、そ
     の他のクラスからは継承を行ないません。

CAVEATS
     実際の時間の計時は、time(2) を使って行なわれますので、精度は
     秒程度しかありません。

     短いテストでは、結果が負数になる場合があります。 perl では、
     空ループの方が短いテストよりも時間がかかる場合があるからです。

         timethis(100,'1');

     としてみてください。 空ループのシステム時間は、実際のコード
     を含むループのシステム時間よりも多少多くかかることがあるため、
     最終的に差がゼロより小さくなることがあるのです。

     もっと、(特にスタイルやフォーマットの) ドキュメントが必要 :-( 

AUTHORS
     Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi>, Tim Bunce
     <Tim.Bunce@ig.co.uk>

MODIFICATION HISTORY
     September 8th, 1994; by Tim Bunce.




















Perl module manpages Last change: Release 5.0 Patchlevel 00     3