- 我使用 4 核 i7 CPU(8 个逻辑核),debian linux
- 虚拟机也是 debian linux
- 程序使用 gcc 编译,没有进行特殊优化(默认编译设置)
- 我循环了该程序 1000 次。当虚拟机具有 4 个核心时,所需时间会延长 2 倍以上。为什么?
注意:我运行的程序是一个 C 程序,生成 4 个线程(pthread),并在经过一点计算后加入它们。它执行并行性(而不是并发性)。
最佳答案
在 I7 中,所有核心共享 L3 缓存。如果额外的执行行导致 L3 缓存上出现更多缓存未命中,则可能会通过添加内核来降低速度。
关于c - 为什么 4 线程程序在 1 核 VM 上比在 4 核 VM 上运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54508431/