count-cycles (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

シグネチャ

{count-cycles num-iterations:int = 100, body [, reset ] }:int64

コード本体を実行するのに必要なマシン サイクルの回数を測定します。

num-iterations: 本体の実行回数。
body: 実行されるステートメント。do ブロックの内部に複数のステートメントをラップすることができます。
reset: body が最初に処理された後、各繰り返し処理の前に実行されるオプションのステートメント。reset コードのコストは結果に含まれません。

戻り値

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

説明

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


例: count-cycles を使ってコードのコストを測定
{let array:Array = {Array}}

{count-cycles
    num-iterations = 50,
    {do
        {array.append 1}
        {array.append 2}
        {array.append 3}
    },
    {array.clear}
}