2009-07-01 4 views
2

DrSchemeを使用して私の機能をプロファイリングしますか? (プロファイル(階乗100))
- - (プロファイルの階乗)(階乗100)
しかし、それは私も同じ結果を与える: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 
==================================== 
> 

返します。 私は何が間違っていますか?

答えて

1

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

(profile (factorial 1000)) 
+0

私もそれを試しましたが、うまくいきませんでした:( – unj2

+1

Gregの答えはPLTの場合に正しいです - 実行しているときにスタックをサンプリング中に 'profile'が部分式を実行します。 –

+0

はい、あなたは正しかったですが、どうして(階乗階乗) (時間(階乗50))は私にCPU時間を与えるのですか? :484リアルタイム:523 gc時間:0(プロファイル(階乗50))は効果がありませんか? – unj2

1

N in(プロファイル(階乗N))を目立つ一時停止までクランキングしようとしましたか?

(階乗100)は、現代のコンピュータが1msで実行できるはずのものです。

ちょうどdocumentationをスキミングすると、私は、そのような場合には簡単すぎて、簡単にプロファイルできないという問題を疑うことができます。

関連する問題