我对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“核心”??
答案 0 :(得分:1)
不,您链接的CPU有四个核心。但是,它可以使用称为Hyper-Threading(HT)的技术在每个核心同时运行两个线程,因此具有8个“线程”。除非您在BIOS或其他地方禁用HT,否则操作系统将显示8个处理器。
请注意,超线程以特殊方式工作:它使用未使用的执行单元(在superscalar processor的意义上)用于第二个线程。 AFAIK有很好的算法可以重新排序指令以使其最有效,但请记住,超线程可能无法为所有应用程序带来最佳性能。例如:如果您已经一直使用四个“真实”线程中的所有浮点执行单元,则超线程将无法在大多数时间使用它们。