サンプルアプリケーションは次のようになります。String.Concatを呼び出してCPU使用率タブに高CPUが表示されない
class Program
{
static List<XmlNode> memList = new List<XmlNode>();
static void Main(string[] args)
{
Console.WriteLine("Press any key to start");
Console.ReadKey();
CauseHighCPU();
}
static public void CauseHighCPU()
{
string str = string.Empty;
for (int i = 0; i < 100000; i++)
{
str += " Hello World";
}
}
}
高いCPUを引き起こす文字列連結が必要です。 PerfViewを使用してアプリケーションのプロファイルを作成すると、これは非常に鮮明です。
私は、Visual Studio 2017の診断ハブを使用して同様の解析を行うことをしようとしています。以下は、そのCPU使用率タブに表示されるものです。
、連結方式への呼び出しを示していない。そのコールツリービュー、ただし、いくつかの外部コードは、これは私はそれが私の構成ガイドで行方不明の何かに関連していると思います
ここにあります。ここからわかるように、[自分のコードを有効にする]チェックボックスはオフになっています。また
ないように注意してくださいそれに関連するが、ここでのシンボルの設定の場合。
VSが高CPU使用率の根本的な原因が表示されない原因となっている間違っている可能性が何をどれthouhts。
これは、それは私の友人でした。どうもありがとう。しかし、これは現在、ntdll.dll、wow64.dllからあまりに多くの "迷惑メール"を引き起こしています。 PerfViewビューはあまりにもきれいです。ここにVSの同じタイプのスタックを得るためにとにかくありますか? –
@jimcrown:申し訳ありませんが、私はVisual Studioでこれを掃除する方法がわかりません –
これは別のトピックですので、ここでは別の質問を投稿します –