36

F# で時間を表示するコードを投稿してください。F# インタラクティブから #time ディレクティブで計測できることに気付きましたが、FSI からプログラムを実行する方法がわかりません。

ありがとう

4

4 に答える 4

55

.NET Stopwatch クラスを使用するだけです。

let stopWatch = System.Diagnostics.Stopwatch.StartNew()
...
stopWatch.Stop()
printfn "%f" stopWatch.Elapsed.TotalMilliseconds
于 2010-12-24T21:47:01.337 に答える
31

msdn から:

#timeは単独で、パフォーマンス情報を表示するかどうかを切り替えます。有効にすると、F# Interactive は、解釈および実行されるコードの各セクションのリアルタイム、CPU 時間、およびガベージ コレクション情報を測定します。

したがって、関数をテストするには、F# インタラクティブ コンソールを開いて関数を実行する必要があります (実行する方法の 1 つは、関数を選択し、右クリックして [インタラクティブで実行] を選択することです) 次に、そのようにインタラクティブで関数を呼び出します。例:

// 最初にインタラクティブ コンソールまたはドキュメントで関数を定義します。

let square x = x * x

// in interactive
#time
square 10
#time

計算に費やされたリアルタイム時間と CPU 時間、およびガベージ コレクターからの情報が表示されます。

于 2013-11-23T01:18:04.687 に答える
21

F Sharp Programming wikibookのタイマー機能を調べてください。次のように定義されます。

let duration f = 
    let timer = new System.Diagnostics.Stopwatch()
    timer.Start()
    let returnValue = f()
    printfn "Elapsed Time: %i" timer.ElapsedMilliseconds
    returnValue    

このように使用されている間:

let sample() = System.Threading.Thread.Sleep(2)

duration ( fun() -> sample() )
// or
duration sample
于 2011-01-10T10:58:31.550 に答える