如何衡量F#代码的CPU和内存使用情况?

Mar*_*erg 8 performance f# measurement

我是F#语言的新手,目前我正在对F#性能做一个简短的研究.所以我想做的是对我的F#代码进行基准测试.我已经找到了秒表类,这很明显,但至于你应该能够测试的其余部分,我发现没有明确的线索.

我想要做的是在运行时查找F#代码的内存和CPU使用情况.这里有没有人能够就如何做到这一点给我一些建议?

pad*_*pad 10

为了快速进行原型设计,fsi的计时指令提供了很好的指示:

#if INTERACTIVE
#time "on"
#endif
Run Code Online (Sandbox Code Playgroud)

它打印出如下内容:

Real: 00:00:00.199, CPU: 00:00:00.120, GC gen0: 0, gen1: 0, gen2: 0 
Run Code Online (Sandbox Code Playgroud)

除了执行时间之外,其他统计信息显示了在分代GC的三个级别中收集的垃圾量,这有助于了解程序中的内存使用情况.

对于严格的基准测试,您应该使用Visual Studio分析器,它提供函数调用计数,计时和内存分配测量等,甚至使用第三方内存分析器.您可以在Good F#Performance Profiling Tool的答案中找到一些使用这些分析器的提示.

  • @JohnReynolds:这不一定是真的.F#3.0有一个新的64位`fsi`,更多信息是[这里](http://blogs.msdn.com/b/fsharpteam/archive/2012/02/29/introducing-visual-f-3-0 -beta.aspx). (8认同)