2

DrSchemeを使用して関数のプロファイルを作成するにはどうすればよいですか?

(require profile) 
(define (factorial n)
  (cond
    ((= n 1) 1)
    (else (* n (factorial (- n 1))))))

(profile factorial)

上記のコードは

Profiling results
-----------------
  Total cpu time observed: 0ms (out of 0ms)
  Number of samples taken: 0 (once every 0ms)

====================================
                        Caller
Idx  Total    Self    Name+srcLocal%
     ms(pct)  ms(pct)   Callee
====================================
> 

私は試しました:-(プロファイル(階乗100))
-(プロファイル階乗)(階乗100)
しかし、同じ結果が得られます。私は何が間違っているのですか?

4

2 に答える 2

1

私はprofilePLTスキームのモジュールに精通していませんが、おそらく実際に関数を呼び出す必要がありますか?

(profile (factorial 1000))
于 2009-07-01T02:54:40.727 に答える
1

目立った一時停止が発生するまで、(プロファイル(階乗N))でNをクランクアップしてみましたか?

(階乗100)は、現代のコンピューターが1ミリ秒未満で実行できるはずの種類のことです。

ドキュメントをざっと読むだけで、階乗が速すぎてそのケースを簡単にプロファイリングできないのではないかと思います。

于 2009-07-01T03:22:21.530 に答える