count-proc-cycles (プロシージャ)
public {count-proc-cycles
p:{proc-type {}:void},
reset-proc:#{proc-type {}:void} = null,
num-iterations:int = 64
}:int64
パッケージ: CURL.LANGUAGE.DATE-TIME

プロシージャを実行するのに必要なマシン サイクルの回数を測定します。

p: 測定するプロシージャ。
num-iterations: プロシージャの実行回数。
reset-proc: 指定した場合、p の最初の呼び出しの後で、個々の呼び出しの前に実行されます。reset-proc の実行コストは結果に含まれません。

戻り値

任意の繰り返し処理で得られる最低のサイクル数。

説明

count-proc-cycles の精度は約 +/- 4サイクルなので、サイクル数が小さい場合はこの結果は信頼できません。 count-proc-cycles によって返されるサイクルの回数は非常にプロセッサに依存していますので、同一のアーキテクチャでも異なるプロセッサ間で比較することはできません。(異なる 2 つの Pentium 4 モデルであってもできません。) 返される値は他のシステムの動作にも影響を受けます。(例:バックグラウンドのタスクや他の実行中のプログラム)又、その精度はマルチ コア システムやマルチ プロセッサ システム上、又は仮想化技術によってかなり減ります。 count-cycles も参照してください。


例: count-proc-cycles を使ってプロシージャのコストを測定
{let array:Array = {Array}}

{count-proc-cycles
    num-iterations = 50,
    {proc {}:void
        {array.append 1}
        {array.append 2}
        {array.append 3}
    },
    reset-proc = {proc {}:void {array.clear}}
}