30

SICPセクション1.2.6によると、演習1.22:

ほとんどのLisp実装には、システムが実行されている時間を指定する整数を返すランタイムと呼ばれるプリミティブが含まれています(たとえば、マイクロ秒単位で測定されます)。

ランタイムが利用できないように見えるDrSchemeを使用しているので、適切な代替品を探しています。PLT-Scheme Referenceで、current-millisecondsプリミティブがあることがわかりました。より良い解像度のSchemeにタイマーがあるかどうか誰かが知っていますか?

4

4 に答える 4

23

current-millisecondsシステムから現在のミリ秒カウントを返す関数ですが、減少する可能性があります。 current-inexact-millisecondsは似ていますが、増加が保証された浮動小数点数を返します。

そのページには同様の関数もたくさんありますが、特定の関数の時間を測定するだけでよい場合は、( expr ) を使用するだけで、式の評価にかかった時間が出力されます。time

ここで関連するもう 1 つのことは、コードの詳細な分析が必要な場合に備えて、プロファイラーです。

于 2010-02-03T22:03:51.093 に答える
6

私も今日この問題に遭遇しました。DrSchemeに取って代わったように見えるので、私はDrRacketを使用しています。これは古いスレッドですが、このスレッドに出くわした新しい人のために、私の調査結果を追加します.

R5RS ( #lang r5rs) を言語として選択し、プログラムの前に次の 2 行を追加して動作させます。

(#%require (only racket/base current-milliseconds))
(define (runtime) (current-milliseconds))
于 2016-07-17T16:40:43.483 に答える