优化吞吐量:多线程与多进程

时间:2017-07-30 06:16:00

标签: c++ multithreading performance operating-system multiprocessing

我正在开发一个处理密集型系统,它可以进行大量的计算。系统有两个主要组件,第一个是处理输入/输出,第二个是处理数据并计算结果。但问题是它无法处理50件物品,而一次只能处理1000件物品。两个组件都有多个线程运行以执行不同的任务。         我在Linux平台上并使用c ++。据我所知,在Linux系统中,除了共享虚拟内存空间之外,线程和进程几乎相似。     所以我的问题是,将I / O与处理单元分开并将它们放在单独的可执行文件或进程中然后使用共享内存或消息队列或任何其他IPC技术是一个好主意吗?

1 个答案:

答案 0 :(得分:0)

在你的情况下,绝对不是。为安全起见,使用不同的进程:如果一个进程崩溃,另一个进程继续。如果黑客管理到一个进程,您可能能够限制其权限,以便黑客不会做任何有害的事情(代码中的错误在这种情况下都不会做任何有害的事情)。

使用您可用的任何分析工具。今天的计算机速度如此之快,以至于大多数时候任务运行速度太慢,而且应用程序会做一些愚蠢的事情,而不是由于某些优化缺失。