私は言語F#を初めて使用し、現在F#のパフォーマンスについて簡単な調査を行っています。ですから、私がやりたいのは、F#コードのベンチマークです。私はすでにストップウォッチクラスを見つけましたが、それはかなり明白でしたが、あなたがテストできるはずの残りの部分に関しては、明確なリードは見つかりませんでした。
私がやりたいのは、実行時にF#コードのメモリとCPUの使用状況を確認することです。これを行う方法について私にアドバイスを与えることができるかもしれない誰かがここにいますか?
私は言語F#を初めて使用し、現在F#のパフォーマンスについて簡単な調査を行っています。ですから、私がやりたいのは、F#コードのベンチマークです。私はすでにストップウォッチクラスを見つけましたが、それはかなり明白でしたが、あなたがテストできるはずの残りの部分に関しては、明確なリードは見つかりませんでした。
私がやりたいのは、実行時に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の3つのレベルで収集されたガベージの量が示されます。これは、プログラムのメモリ使用量を理解するのに役立ちます。
本格的なベンチマークには、関数呼び出しカウント、タイミング、メモリ割り当て測定などを提供するVisual Studioプロファイラーを使用するか、サードパーティのメモリプロファイラーを使用する必要があります。これらのプロファイラーを使用するためのヒントは、 Good F#PerformanceProfilingToolの私の回答にあります。
Dave Thomas(以前のMoirae Software)からのこのブログ投稿も役に立ちます。
https://7sharp9.github.io/2011/12/11/2011-12-11-fixing-a-hole/
通常、私はブログ投稿の特定の部分を特定して質問に答えると思いますが、ブログ投稿全体がこの質問への回答です。
編集:古いリンクが壊れていたので、リンクを更新しました。