F# で時間を表示するコードを投稿してください。F# インタラクティブから #time ディレクティブで計測できることに気付きましたが、FSI からプログラムを実行する方法がわかりません。
ありがとう
.NET Stopwatch クラスを使用するだけです。
let stopWatch = System.Diagnostics.Stopwatch.StartNew()
...
stopWatch.Stop()
printfn "%f" stopWatch.Elapsed.TotalMilliseconds
msdn から:
#timeは単独で、パフォーマンス情報を表示するかどうかを切り替えます。有効にすると、F# Interactive は、解釈および実行されるコードの各セクションのリアルタイム、CPU 時間、およびガベージ コレクション情報を測定します。
したがって、関数をテストするには、F# インタラクティブ コンソールを開いて関数を実行する必要があります (実行する方法の 1 つは、関数を選択し、右クリックして [インタラクティブで実行] を選択することです) 次に、そのようにインタラクティブで関数を呼び出します。例:
// 最初にインタラクティブ コンソールまたはドキュメントで関数を定義します。
let square x = x * x
// in interactive
#time
square 10
#time
計算に費やされたリアルタイム時間と CPU 時間、およびガベージ コレクターからの情報が表示されます。
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