やむを得ずヒープ上に大量のデータを作成する C# .net 3.5 アプリケーションの場合、ハードウェアに関して、メモリに関して何を探す必要があるでしょうか? 最大のソケットバス幅でしょうか?それともメモリースティックの「帯域幅」ですか?または、それらが実行される実際の頻度は?
アプリケーションのボトルネックは避けられないという結論に達しました。スケールアップすると、作業が複数のスレッドに分散され、多くのスレッドが RAM にアクセスするために「衝突」が発生しているように見えます。
実際の問題は、アイテムがロックされ、多くのスレッドがこれらのアイテムにアクセスしようとすることに関係しています。スレッド ロックをさらに最適化する方法はありません。これはスレッド化に関連しているため、別の CPU の選択も調査し、QPI 統計を詳しく調べる必要があるかどうかはわかりませんでした。現在、Westmere アーキテクチャを使用していますが、クロック速度は 2GHz と遅いです。
編集:DMAが私たちを助けることができると示唆されています。
答えは C# 固有のものではないと思うので、これを C# および Java としてタグ付けします。
前もって感謝します、