F#Interactive Consoleで遊んでいて、いくつかの数値操作の実行時間を比較しています。このコードでは、合計実行時間は2倍になり、1つの変数の宣言を繰り返すだけのようです。
VS 2010では、次のことを行います。
open System.Diagnostics
let mutable a=1
次に、これを下で選択して、Alt+Enterで実行します
let stopWatch = Stopwatch.StartNew()
for i=1 to 200100100 do
a <- a + 1
stopWatch.Stop()
printfn "stopWatch.Elapsed: %f" stopWatch.Elapsed.TotalMilliseconds
多かれ少なかれかかります:320ミリ秒
これを選択してAlt+Enterキーを押します。
let mutable a=1
let stopWatch = Stopwatch.StartNew()
for i=1 to 200100100 do
a <- a + 1
stopWatch.Stop()
printfn "stopWatch.Elapsed: %f" stopWatch.Elapsed.TotalMilliseconds
ほぼ2倍:620ミリ秒
同じブロックですが、上部に宣言を含めると、ほぼ2倍になります。Stopwatch.StartNew()の前に変数を宣言しているので、同じではないでしょうか?これはインタラクティブコンソールと関係がありますか?#timeディレクティブを使用しても同じ結果が得られます。