2012-04-06 65 views
7

我是F#语言的新手,目前我正在对F#性能做一个简短的研究。所以我想要做的是基准我的F#代码。我已经找到了Stopwatch类,这很明显,但对于你应该能够测试的其余部分,我没有发现明确的线索。如何测量F#代码的CPU和内存使用情况?

我想要做的是在运行时找出F#代码的内存和CPU使用情况。这里有没有人可以给我一些关于如何做到这一点的建议?

+0

可能重复http://stackoverflow.com/questions/ 4528355/f-execution-time-of-execution) – vcsjones 2012-04-06 15:30:41

+0

@Marcus - 您是否在测量内存和CPU?你想要检查的其他计数器是什么? – Gangadhar 2012-04-06 15:40:49

+2

@vcsjones他在询问内存使用情况 - 与执行时间不一样。我不认为这是一个骗局。 – 2012-04-06 16:07:08

回答

9

对于快速原型,FSI的时机指令提供了良好的适应症:

#if INTERACTIVE 
#time "on" 
#endif 

它打印出来是这样的:

Real: 00:00:00.199, CPU: 00:00:00.120, GC gen0: 0, gen1: 0, gen2: 0 

除了执行时间,其他的统计数据显示,三个层次的垃圾收集量世代GC,这有助于了解程序中的内存使用情况。

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

+0

请记住,即使您在64位操作系统上,fsi也是32位。 – 2012-04-06 15:46:31

+8

@JohnReynolds:这不一定是真的。 F#3.0有一个新的64位'fsi',更多信息是[here](http://blogs.msdn.com/b/fsharpteam/archive/2012/02/29/introducing-visual-f-3-0 -beta.aspx)。 – pad 2012-04-06 15:51:35

相关问题