Scheme には Lisp の「ランタイム」プリミティブに相当するものはありますか?
質問
によると SICP セクション 1.2.6, 、演習 1.22:
ほとんどの Lisp 実装には、システムの実行時間 (たとえば、マイクロ秒単位で測定) を指定する整数を返す runtime と呼ばれるプリミティブが含まれています。
使っています ドクタースキーム, 、ランタイムが利用できないようなので、良い代替品を探しています。PLT スキーム リファレンスに次のようなものがあることがわかりました。 現在のミリ秒 原生的。Scheme にもっと解像度の高いタイマーがあるかどうか知っている人はいますか?
解決
current-milliseconds
はシステムから現在のミリ秒カウントを返す関数ですが、減少する可能性があります。 current-inexact-milliseconds
は似ていますが、増加が保証された浮動小数点数を返します。
このページには同様の関数がたくさんありますが、特定の関数の時間を計測することだけが必要な場合は、(time
式) 式の評価にかかった時間を出力します。
ここで関連するもう 1 つのことは、 プロファイラー, コードのより詳細な分析が必要な場合に備えて。
他のヒント
私は今日もこの問題に出くわしました。 DrSchemeを取っているようだと私は、DrRacketを使用しています。これは古いスレッドですが、私はこのスレッド間でつまずく新しい人のために私の調査結果を追加しています。
選択した言語としてR5RSでは、それが
動作させるためにプログラムする前に、以下の2行を追加します。(#%require (only racket/base current-milliseconds))
(define (runtime) (current-milliseconds))
所属していません StackOverflow