【发布时间】:2016-07-28 13:12:24
【问题描述】:
我正在对 linux 上一个烦人的 cpp 程序进行基准测试。该程序是一团糟,复杂得要命!它会自动执行多线程,我想知道是否有任何方法可以通过某种方式(即任务集等)强制调用它以仅使用 1 个线程。
编辑:我尝试设置“taskset 01 program arg1 ...”,但它不起作用。我刚刚看到程序使用了 100 个线程!
【问题讨论】:
-
@Brett - 怎么样?我不是管理员,还有其他人在使用服务器。
-
你为什么要问?如果您进行基准测试,您应该在预期的条件下运行程序,显然对于该程序来说这意味着多线程。也许大多数线程都是空闲的,程序只能在一个或两个内核上运行。所以编辑你的问题来激发它。
-
顺便说一句,您缺少
Linux标签。另外,为什么只在一个或两个内核上对您的程序进行基准测试会让您不满意? -
但是,限制核心(不是线程!)的数量就足够了。也许线程数是可配置的(至少通过重新编译源代码)。
-
并非如此。代码对 I/O 非常敏感,因此多线程实际上在时序方面会产生无意义的结果。
标签: c++ linux multithreading