0

マルチスレッドプログラムがあります。スレッドプールの独自の実装を使用します。まず、プロジェクトの負荷は十分です。シングルスレッドに比べて、2 スレッドのプログラムの方が高速です。

スレッド数を 2 以上に増やすと、パフォーマンスが著しく低下します。明らかに、マルチスレッドのパフォーマンスの問題が発生しました。

その後、インテル® VTune™ Amplifier XE 2017 パフォーマンス解析の使用を開始し、このツールを VS2013 に統合しました。次に、Intel® VTune™ Amplifier XE のスター ボタンをクリックすると、驚くべきことが起こりました。プロジェクトが実行を開始し、plug が Data を収集します。プラグインを介してこのプロジェクトを開始すると、スレッド数が増えるにつれて、パフォーマンスが向上し、実行時間が短縮されることがわかりました。最大 20 個のスレッドを開くことができます。そして時間が20倍短縮

インテル® VTune™ Amplifier XE 2017 は、マルチスレッド・プログラムの動作モードを変更できますか? なぜこれが起こるのですか?私は長い間この問題に悩まされてきました。

4

1 に答える 1

1

最後に、この質問を解決します。答えは簡単です。問題の原因は、プログラムをデバッグで実行したことです。*.exe をリダイレクトして実行すると、パフォーマンスは良好です。VTune とは関係ありません。VTune を直接使用しているためです。 *.exe を呼び出すことから始めます。

于 2016-10-21T03:30:47.923 に答える