1

「サンプリング」モードでアタッチして、Windows サービスをプロファイリングしています。

[System.Runtime.Serialization.ni.dll]結果ファイルの「関数」ビューを開くと、このアセンブリ内の具体的な .net 関数を示すことなく、「最もホットな」関数が表示されていることがわかります。

ngen'd アセンブリ (.ni.dll) の他のすべてのシンボルが同じように表示されるようです。また、管理されているが ngen されていないアセンブリのシンボルがリストに表示されません。これは非常に奇妙です

ただし、「AwareLock::Contention(int)」などのネイティブ シンボルはすべて問題なく解決されます。

また、[出力] タブには次のように表示されます。

Loaded symbols for C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Runtime.Seri#\12aaff696a0c54773664b4c5407deaa2\System.Runtime.Serialization.ni.dll.

また、 vsperfclrenv は起動していませんが、同時実行プロファイリング モードではすべて問題なく解決されるため、VS2010 がすべて実行してくれるので、vsperfclrenv は必要ないと考えました。

走ってみましngen update /debug /profileたが変わりませんでした。

VS2010 のサンプリング プロファイラーがこれらのマネージ アセンブリ内のシンボルを解決するように環境をセットアップするにはどうすればよいですか?

その間、私はそれらを試してみngen uninstallます。

4

1 に答える 1

0

VS2010 でパフォーマンス レポートを開くと、エラー リストにメッセージが表示されますか? 適切な環境変数がないと、マネージド シンボルの解決に必要なコンポーネントがプロセスに挿入されず、ネイティブ イメージのみが解決されます。

サービスをプロファイリングしている場合はvsperfclrenv /globalsampleon、環境変数が正しく設定されていることを確認するために、使用してから再起動する必要があります。

于 2011-03-26T02:19:14.923 に答える