2012-09-06 11 views
5

私はF#クラスを参照するC#Windowsアプリケーションを含むVisual Studioプロジェクトを持っています。 Visual Studio 2010パフォーマンスプロファイラを計測モードで実行すると、C#アプリケーションによって呼び出された場所以外のF#クラスの計測情報は取得されません。F#パフォーマンスプロファイラ計測器が動作しない

サンプリングモードで実行するとうまく動作します。

VS2012でプロジェクトを実行しようとしたところ、同じ問題が発生しました。

F#クラスの計測情報を表示するにはどうすればよいですか?

答えて

4

インストルメンテーションモードで実行すると、プロファイラはパフォーマンスデータを記録するために、すべてのメソッドの入口/出口点に少しのコードを注入します。ただし、このプロファイリングコードは、実際にプロファイリングしているアセンブリ(例:C#アプリケーション)にのみ挿入され、参照されるアセンブリは挿入されません。

したがって、F#アセンブリを直接プロファイルする必要があります。私はそれがライブラリであると仮定します。その場合、C#アプリケーションを開始プログラムとして指定する必要があります。プロファイラはC#アプリケーションを起動しますが、F#ライブラリを実際に計測しプロファイルします。これを行うための設定については、MSDNの記事How to: Specify the Binary to Startを参照してください。

+0

これは治療になりました。 –

+1

私はlaunch performance wizardを使い、 'instrumentation'を選択し、次に 'dynamic-link library'を使いました。私は、DLLを選択し、exeビルドするフォルダからexe。もう1つのことは、x86で動作させる必要がありました.CPUで動作しないように見えました。ヒーローに感謝します。 –

関連する問題