f#慢编译

ren*_*ren 4 performance f# compilation fsharpcodeprovider

我能做些什么来使f#代码编译得更快(或者更好但不是)运行ngen?

对于说奔腾4机器,什么是近似基准"hello world"编译时间(或更好的说编译器启动时间+编译时间)?

编辑结果有细微差别:)

首先,任何人都可以解释什么是编译器的启动时间?为什么它变慢.还将赞赏有关整个f#编译过程的信息的链接.

上下文:在小代码片段中反复调用f#编译器

using (CodeDomProvider provider = new Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider())
{
  //start time
  cr = provider.CompileAssemblyFromSource(cp, new string[] { data.Program });
  //end time
}
Run Code Online (Sandbox Code Playgroud)

时差约为6秒.所以问题基本上是除了ngen之外可以做些什么?你可以在这里看到自己:rundotnet

Mau*_*fer 5

我的电脑需要0.9秒(AMD Athlon 64 X2 4600):

#r "FSharp.Compiler.CodeDom"

open System.Reflection
open System.CodeDom.Compiler
open Microsoft.FSharp.Compiler.CodeDom

let comp() =
    use provider = new FSharpCodeProvider() 
    let code = "module pp\n printfn \"Hello world\""
    let cp = new CompilerParameters() 
    cp.GenerateInMemory <- true 
    provider.CompileAssemblyFromSource(cp, [|code|]) |> ignore
#time
comp()
Run Code Online (Sandbox Code Playgroud)