2011-06-19 16 views

答えて

1

2つの目標を区別すると便利です。コード内のボトルネックを実際に見つけ出すのではなく、測定するだけです。

後者については、私はthis techniqueが最も効果的であることを発見しました。

多くの私の仕事は大規模なC#アプリケーションであり、人々がパフォーマンス上の問題を抱えているため、常にI/Oバインドが行われることがあります。 それにかかわらず、このメソッドはそれらを直ちに検出します。

3

Visual Studio 2010の並行処理ビジュアライザは、IOボトルネックの大きな領域を特定するのに役立ちます。

「スレッドビュー」には、アプリケーション内のすべてのスレッドのタイムラインが表示され、さまざまな種類のアクティビティを示す色が表示されます。 IO上でブロックされているスレッド(ファイル、ネットワークなど)は、スレッドが紫色で表示されます。これらのセグメントの1つをクリックすると、そのスレッドがIO上でブロックしているコールスタックが表示されます。下の画像では、同期(赤)セグメントが選択され、スタックは「現在のスタック」パネルに表示されています。

各ディスクを表すチャネルもあり、読み書きを表示し、これらのセグメントの1つをクリックすると、そのセグメントが表すファイル操作が表示されます。例えば

、タイムラインの下に

Concurrency Visualizer Threads View

は、あなたが「可視タイムラインプロファイル」内の項目をクリックすることでアクセスできるレポートの数です。表示されているタイムライン内のさまざまなアクティビティの集計スタックを表示するので、IO上のブロックの大部分が発生しているスタックを見ることができます。同様に、「ファイル操作」レポートには、表示可能なタイムラインでの読み取り/書き込みが表示されます。

"ファイル操作" 報告書は次のようになります。詳細については

Concurrency Visualizer File Operations

team blogMSDNまたはHazimシャフィのblogMSDN magazine articleをチェックしてください。

関連する問題