https://zhuanlan.zhihu.com/p/217826075
超线程技术并不能提升物理能力,通过优化CPU处理流程提升总体处理能力,大概15-20%。
一般而言单线程处理能力下降大概在5-15%之间。
这遍文章是针对游戏发烧友的,如果是普通玩家或者是普通办公者,直接建议购买支持超线程CPU,这也是大部分用户的选择。
什么是超线程(Hyper-threading,简称HT)?
简单地表达就是将一个CPU核心虚拟化成两个CPU核心。
理论上来讲一个CPU核心在运行的时候只能处理一个线程,超线程的技术使得CPU在运行的时候可以处理两个线程。本质上还是一个CPU核心,总算力不变,只是更有效压榨CPU的性能。
超线程技术并不能提升物理能力,通过优化CPU处理流程提升总体处理能力,大概15-20%。
CPU的架构有两个模块:
运算处理单元简称PU
架构状态单元简称AS
PU就是执行运算,可以理解成干实事的比如工厂。
AS执行调度方面的操作,可以理解为业务员接单。
简单理解就是业务员接单交给工厂做单。这一条完整的操作却发现一个非常简单的问题:业务员接单的时间要比工厂工作需要的时间多,怎么压榨工厂的性能,想到了一个办法,安排两个业务员,业务员交叉接单让工厂不能闲着。
超线程可以有效的提高CPU整体处理能力,但是并非所有苦口都是良药,超线程也存在一些问题。
单线程性能下降。
情况一:两个业务员也并非一帆风顺,来了一个客户到底是分给A还是分给B,要进行调度就需要了解到A和B的状态,到底谁手上有单,谁手上没有单。管理需意味着额外开销。如果只有A业务员来了直接就分配到A。
情况二:工厂在处理A业务员的订单,B业务员的订单就要阻塞。
一般而言单线程处理能力下降大概在5-15%之间。
耗电功率增加。
这个很简单能理解,功率的增加随着电脑使用的年份增加,相对成本累计明显。
超线程和多线程的区别 ?
超线程和多线程是没有任何直接关系的。
超线程是CPU的技术把一个核心虚拟化两个核心。操作系统是无法感知的,操作系统是被欺骗的。例如:4核8线程的CPU在操作系统内面被识别为就是8个核心。
多线程是开发者通过多线程编程使得游戏运行的时候同时多个线程在运作处理数据从而提搞高程序响应。
操作系统可以根据主板提供信息 获取到物理内核和逻辑处理器,当然逻辑处理器大于内核数时从而判断出使用超线程技术。逻辑内核是CPU硬件内部的逻辑,CPU对外只能提供8个硬件接口,操作系统无法控制CPU硬件的逻辑,只有对硬件接口进行调度。
4核8线程的CPU和8核8线程的CPU在一个支持多线程的程序(支持4个线程)中,8核8线程的CPU处理要比4核8线程的要快!
因为相同的是4线程
4核8线程的CPU分给它的是4个核心,但是四个是虚拟化的,最理想的情况就是四个线程分配到不同的核心,即使如此操作系统在运行时自身就自带几百个线程的运作,也就是说同一时刻,别的核心也是同时在处理两个线程。
8核8线程的CPU分给它的是四个核心,但是四个都是真实物理核心,任意一个时刻一个物理内核都只在处理一个线程。
上面把超线程介绍得差不多啦,我们一起看看游戏对多线程的优化吧。
我们不得不重温一下历史故事,为什么多核CPU的会出现?
2005年,英特尔和AMD都发现当CPU接近主频4.0GHZ的时候,速度达到极限。其主要原因是受限制CPU的材料硅。
由于多核心的服务器CPU出现,很快Interl和AMD就把战火引到民用级别。可以说“双雄争霸”推进CPU的发展进程。
值得注意的事情是2005年Inter才推出单封装双核的奔腾D,然后当时的操作系统和程序根本没有适应多核CPU,曾一度流言多核CPU是假命题。
也是因为intel曾长达十多年的主导CPU市场所以也导致CPU核心数量停滞不前。
民用级应用的开发者几乎不会去关心多线程的开发,因为只有一个CPU。
直到CPU的多核爆发,多线程的优化突显才引起了开发者的普遍关注。
但是技术的发展和推广是非常缓慢的,面对的多线程开发者即使拥有十年开发经验的老鸟依然让人非常头痛。
在游戏界也是如此,大部分游戏游戏倾向于严重依赖一个线程,优秀的游戏厂商或者3A大作才勉强可以才提高到2线程或者最高能到4线程的优化力度,当然主流流行的游戏可能普遍支持多线程了,但是面对成千上万的游戏,主流游戏可能连一成比例都达不到。
还有很多己经完成的游戏,多线程应用并不是简单配置程序使用多个核心这么简单,如果让己完成的游戏支持多线程,几乎相当于推倒重写这个游戏,严重到可能需要使用新的游戏引擎。这完全就是另外一个故事了。
多线程开发是困难的,主流游戏在多线程支持一般是2线程最高到4线程。这句话很重要,纯游戏而言CPU核心数比这个数多,基本上属于算力过剩!
超线程对游戏有帮助吗?
这个主要取决于你的CPU核心数,如果CPU核心低于4核,多线程是有助于游戏提高性能。
如果CPU核心数高于4核,超线程技术应该是有耗游戏性能。
那CPU的购买建议昵?
如果是商务办公建议购买支持超线程CPU。
如果是办公,游戏兼备则应该根据预算进行选择。
预算不足购买2核或4核的CPU则应该选择超线程技术。
如果预算充足购买8核CPU,从游戏发烧友的角度建议购买8核8线程,如果兼容普通办公应该是8核8线程,如果兼容特殊工种办公应该是8核16线程。
那些是游戏的最佳CPU?
基频和睿频区别?
CPU根据负载自动调度内部算力,基频就是最低运行的频率,睿频就是CPU最大的运行速度。买CPU一定要看睿频,它决定最高运行速度。