我正在使用 F# Interactive Console 并比较一些数字操作的运行时间。在这段代码中,总运行时间似乎翻了一番,只是重复了一个变量的声明。
在 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 ms
现在我选择它并按 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
几乎翻倍:620 毫秒
相同的块,但包括顶部的声明几乎需要两倍。因为我在 Stopwatch.StartNew() 之前声明了变量,所以不应该是一样的吗?这与交互式控制台有关吗?我使用#time 指令得到了相同的结果。