我是F#語言的新手,目前我正在對F#性能做一個簡短的研究。所以我想要做的是基準我的F#代碼。我已經找到了Stopwatch類,這很明顯,但對於你應該能夠測試的其餘部分,我沒有發現明確的線索。如何測量F#代碼的CPU和內存使用情況?
我想要做的是在運行時找出F#代碼的內存和CPU使用情況。這裏有沒有人可以給我一些關於如何做到這一點的建議?
我是F#語言的新手,目前我正在對F#性能做一個簡短的研究。所以我想要做的是基準我的F#代碼。我已經找到了Stopwatch類,這很明顯,但對於你應該能夠測試的其餘部分,我沒有發現明確的線索。如何測量F#代碼的CPU和內存使用情況?
我想要做的是在運行時找出F#代碼的內存和CPU使用情況。這裏有沒有人可以給我一些關於如何做到這一點的建議?
對於快速原型,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的答案中找到使用這些分析器的一些提示。
請記住,即使您在64位操作系統上,fsi也是32位。 – 2012-04-06 15:46:31
@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
可能重複http://stackoverflow.com/questions/ 4528355/f-execution-time-of-execution) – vcsjones 2012-04-06 15:30:41
@Marcus - 您是否在測量內存和CPU?你想要檢查的其他計數器是什麼? – Gangadhar 2012-04-06 15:40:49
@vcsjones他在詢問內存使用情況 - 與執行時間不一樣。我不認爲這是一個騙局。 – 2012-04-06 16:07:08