单线程/基于事件的软件与核心和H / W线程

时间:2015-11-19 10:41:08

标签: multithreading performance multicore

我对CPU上的内核和线程感到有点困惑

通常在配置文件中,例如。 nginx,golang你必须定义核心数量才能获得最佳性能

如果你看看这个CPU http://ark.intel.com/products/52213/Intel-Core-i7-2600-Processor-8M-Cache-up-to-3_80-GHz

它有多少“核心”?

在规格中它有4个核心和8个线程..这是否意味着4 * 8 = 32“核心”??

1 个答案:

答案 0 :(得分:1)

不,您链接的CPU有四个核心。但是,它可以使用称为Hyper-Threading(HT)的技术在每个核心同时运行两个线程,因此具有8个“线程”。除非您在BIOS或其他地方禁用HT,否则操作系统将显示8​​个处理器

请注意,超线程以特殊方式工作:它使用未使用的执行单元(在superscalar processor的意义上)用于第二个线程。 AFAIK有很好的算法可以重新排序指令以使其最有效,但请记住,超线程可能无法为所有应用程序带来最佳性能。例如:如果您已经一直使用四个“真实”线程中的所有浮点执行单元,则超线程将无法在大多数时间使用它们。