2012-04-06 63 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

相關問題