[转帖]探讨超线程CPU对游戏的影响和最佳游戏CPU

探讨,超线程,cpu,游戏,影响,最佳 · 浏览次数 : 0

小编点评

**超线程技术可以提升游戏性能,但只适合CPU核心数高于4核的计算机。** **超线程技术的基本原理:** * 将一个CPU核心虚拟化成两个CPU核心。 * 两个CPU核心可以并行处理多个线程。 **超线程技术的优势:** * 提升游戏性能。 * 减少线程切换的成本。 **超线程技术的劣势:** * 单线程性能下降。 * 耗电功率增加。 **CPU核心数对超线程技术的影响:** * CPU核心数低于4核时,多线程可以帮助游戏提升性能。 * CPU核心数高于4核时,超线程技术可能不适用游戏。

正文

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个核心。

4核8线程被识别成8个核心,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一定要看睿频,它决定最高运行速度。

与[转帖]探讨超线程CPU对游戏的影响和最佳游戏CPU相似的内容:

[转帖]探讨超线程CPU对游戏的影响和最佳游戏CPU

https://zhuanlan.zhihu.com/p/217826075超线程技术并不能提升物理能力,通过优化CPU处理流程提升总体处理能力,大概15-20%。一般而言单线程处理能力下降大概在5-15%之间。 这遍文章是针对游戏发烧友的,如果是普通玩家或者是普通办公者,直接建议购买支持超线程CP

[转帖]高性能IO模型:为什么单线程Redis能那么快?

https://zhuanlan.zhihu.com/p/596170085 你好,我是蒋德钧。 今天,我们来探讨一个很多人都很关心的问题:“为什么单线程的Redis能那么快?” 首先,我要和你厘清一个事实,我们通常说,Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的

[转帖]探索惊群 ⑥ - nginx - reuseport

https://wenfh2020.com/2021/10/12/thundering-herd-tcp-reuseport/ SO_REUSEPORT (reuseport) 是网络的一个选项设置,它能开启内核功能:网络链接分配 内核负载均衡。 该功能允许多个进程/线程 bind/listen 相

[转帖]探索惊群 ①

https://wenfh2020.com/2021/09/25/thundering-herd/ 惊群比较抽象,类似于抢红包 😁。它多出现在高性能的多进程/多线程服务中,例如:nginx。 探索惊群 系列文章将深入 Linux (5.0.1) 内核,透过 多进程模型 去剖析惊群现象、惊群原理、惊

[转帖]《Linux性能优化实战》笔记(24)—— 动态追踪 DTrace

使用 perf 对系统内核线程进行分析时,内核线程依然还在正常运行中,所以这种方法也被称为动态追踪技术。动态追踪技术通过探针机制来采集内核或者应用程序的运行信息,从而可以不用修改内核和应用程序的代码就获得丰富的信息,帮你分析、定位想要排查的问题。 以往,在排查和调试性能问题时,我们往往需要先为应用程

[转帖]新一代垃圾回收器ZGC的探索与实践

1. 引入 1.1 GC之痛 很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰。GC停顿指垃圾回收期间STW(Stop The World),当STW时,所有应用线程停止活动,等待GC停顿结束。以美团风控服务为例,部分上游业务要求风控服务65ms内返回结果,并且可用性要达到99.99%。

[转帖]探讨内存基础知识和如何选择内存条

https://zhuanlan.zhihu.com/p/257286284 内存也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。 简单的说就是在操作系统的文件会储存在硬盘内存,当操作系统运作起来的时候会从硬盘内面读取数据储存在内存,CPU从内存读取数据,CP

[转帖]帮你精通Linux:Find命令高阶操作4项动作

八列属性 本文将继续探讨其高级查询功能,将分为四个方面展开讨论: 预定义动作 Predefined-Actions自定义动作 User-defined Actions与grep协同动作Operator逻辑操作 一、预定义动作 Predefined Actions 搜索是第一步,第二步是处理搜索的结果

[转帖]docker多主机网络方案

http://t.zoukankan.com/bethal-p-6046816.html 本文探讨Docker多主机网络的性能。 在过去的博文里,我测试过 Docker的网络 。 MySQL服务器团队 提供了他们自己的结果,和我的观察是一致的。 本文里一系列的测试,想更多关注使用多主机的Docker

[转帖]如何监测 Linux 的磁盘 I/O 性能

https://bbs.huaweicloud.com/blogs/379242 在我之前的文章:《探讨 Linux 的磁盘 I/O》中,我谈到了 Linux 磁盘 I/O 的工作原理,我们了解到 Linux 存储系统 I/O 栈由文件系统层(file system layer)、通用块层( gen