私は、WAV ファイルを読み込んでさまざまなデータを収集し、特定の計算を行い、必要な有用な情報を出力するプログラムを作成しました (エンドポイントは音声弁別器です)。これはすべて、個別のクラス オブジェクト内のファイルごとに個別に行われ、それぞれに異なる入力文字列が必要なだけなので、アプリケーションを非常に簡単にスレッド化して、4 倍程度高速に実行できると考えました。
これは私が行ったもので、うまく機能しているようです。ただし、アプリケーション (スレッド対非スレッド) の時間になると、約 3600 個のファイルを処理するのに 1 分間で約 3 秒しかかかりませんでした。これについての私の最善の推測はファイル I/O であり、実装されたすべてのテストでより大きな改善が見られるでしょうが、それは私が特に興味を持っていることではありません。
Win7 でタスク マネージャーを開くと、両方のバージョンのアプリケーションが i3 マシンの 4 つの (仮想) コアすべてで同様のアクティビティを示していましたが、完了時にすべてが最小値になりました。
私の質問: C# コンパイラ、特に Visual Studio は既に複数のコアに最適化されていますか? そうでない場合、何か基本的なことを見逃していませんか?