【发布时间】:2013-05-01 02:46:53
【问题描述】:
有什么原因导致 F# 不够聪明,无法优化以下代码吗? fast = 880 和 slow = 8090。
type Data = { fn: int * int -> int }
let fn (x, y) = x + y
let data = { fn = fn }
let mutable a = 0
let s = System.Diagnostics.Stopwatch()
s.Start()
for i in 0 .. 1000000000 do
a <- fn(i, i)
printfn "fast = %d" s.ElapsedMilliseconds
s.Restart()
for i in 0 .. 1000000000 do
a <- data.fn(i, i)
printfn "slow = %d" s.ElapsedMilliseconds
【问题讨论】:
-
我认为您的问题不太正确。正确的问题是为什么不安装程序优化它,而不是为什么不能优化它。
标签: function optimization f# record