0

私は、多くの計算を行う処理集中型のシステムに取り組んでいます。このシステムには、入力/出力を扱う2つの主要なコンポーネントがあり、2つ目はそのデータを処理して結果を計算することです。しかし、問題は50個のアイテムを扱うことができないのに対し、一度に1000個以上のアイテムを扱うことになっているということです。どちらのコンポーネントも、異なるタスクのために複数のスレッドを実行しています。 私はLinuxプラットフォームで、C++を使用しています。私の理解では、Linuxシステムでは、スレッドとプロセスは、仮想メモリ空​​間の共有以外はほぼ似ています。 私の質問は、I/Oを処理装置から分離し、別々の実行可能ファイルやプロセスに入れ、共有メモリやメッセージキューなどのIPC技術を使用することです。スループットの最適化:マルチスレッド対マルチプロセス

+7

プロファイラーを使用してアプリケーションのパフォーマンスを測定し、何が遅くなっているのかを把握することをお勧めします。この場合、野生の推測を投げることは全く無意味です。 – VTT

+0

問題が何であるかを推測することは不可能です(より多くの情報が必要です)が、プロセス間通信は通常高価です(スレッド間スレッドは必要ありません)。 – Surt

答えて

0

あなたの状況では、絶対にそうではありません。セキュリティのために異なるプロセスを使用します。あるプロセスがクラッシュした場合、もう1つのプロセスがクラッシュします。ハッカーが1つのプロセスを管理している場合、ハッカーが何か有害な行為を行うことができないように、そのアクセス権を制限することができます(コードのバグはこの場合でも何もできません)。

利用可能なプロファイリングツールを使用します。今日のコンピュータは非常に高速であるため、ほとんどの場合、タスクが低速で実行されているため、最適化が不足しているわけではありません。

関連する問題