CPU 負荷の高い .NET アプリを並列化するための現在の最良のオプションは何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/1387

  •  08-06-2019
  •  | 
  •  

質問

これは自由回答の質問です。どのようなアプローチを考慮すべきでしょうか?

正しい解決策はありません

他のヒント

最初のステップは、問題の並列性を見つけて理解することです。シングルスレッド コードと同等のパフォーマンスを実現するマルチスレッド コードを作成するのは非常に簡単です。「並列プログラミングのパターン」 (アマゾン) 重要な概念を紹介するのに最適です。

実行可能な設計を作成したら、MSDN マガジン アーカイブの「同時実行性」トピックの記事を読み始めます。 (リンク), 、特にジェフ・リヒターが書いたもの。これらは、Windows と .NET に固有のスレッド構造に関する基本事項を提供します。(Richter の「CLR via C#」のマルチスレッドに関するセクション (アマゾン)短いですが、非常に洞察力に富んでいるため、強くお勧めします。)

.NET には並行拡張機能がいくつかあり、現在テスト中であり、Microsoft の Web サイトから入手できます。 並列コンピューティング開発者センター. 。Parallel foreach や PLINQ と呼ばれる LINQ の並列バージョンなど、期待できるような興味深いアイテムがいくつかあります。拡張機能に関する最良の情報の一部は、 チャンネル9.

検討すべき最良の選択肢の 1 つである場合には、.NET 固有ではない並列処理のアプローチも含めることができると思います。

@ラーセナル

.NET の外部に分岐したい場合は、Intel の ビルディングブロックのスレッド化 これは C++ 用の並列ライブラリです。

多くのオプションがあり、最適な解決策は、解決しようとしている問題の性質によって異なります。問題を解決しようとしている場合は、 恥ずかしいほど平行 問題が解決されれば、タスクの分割と並列化は簡単になります。その場合、使用されるデータの配布と管理が課題となります。

いくつかの提案は次のとおりです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top