Unity手游实战:从0开始SLG——ECS战斗(五)浅谈CPU缓存命中

本文探讨Unity手游实战中,如何利用ECS(Entity Component System)提升性能,重点关注CPU缓存命中。通过理解CPU架构、工作原理和缓存机制,阐述ECS如何通过优化数据布局提高缓存命中率,从而实现游戏性能的显著提升。
摘要由CSDN通过智能技术生成

ECS在游戏里的运用,最初是用来解决预测和回放的问题。但是由于面向数据的编程结构,天然符合了现代CPU的编程思想,所以目前UnityECS主要还是推动展现性能方面的优势。那么ECS是如何提升程序性能的呢?最重要的其实就是CPU的缓存命中。讲CPU命中之前,我们先说说CPU的一些基础知识。

CPU架构

我们现在经常听到的关于CPU的描述里会有高通骁龙,华为麒麟,英特尔奔腾,酷睿I3、I5、I7或者X86,ARM,PowerPC,又或者32位64位等等。那么它们之间的关系是什么?

首先我们说区别CPU最核心的叫做指令集,指令集决定CPU的工作方式,所以指令集就决定了一个CPU的架构。CPU发展到现在,衍生了很多不同的架构方式,到目前为止最接触最多的就是X86和ARM架构。

X86的复杂指令集(CISC)的代表,ARM是精简指令集(RISC)的代表,这二者之间最核心的区别就在于指令的复杂程度,指令的复杂程度又决定了硬件的设计工艺和工作时的调度方式。

比如,我们把大象放进冰箱,一共需要三步:第一步把冰箱门打开,第二步把大象放进去,第三步把冰箱门关上。X86(复杂指令集)推崇的就是分成三步执行,这样以后我想把长颈鹿也放进去的时候,我只要替换第二步就可以了。但是ARM推崇的就是,我要训练一个机器人(硬件加速),告诉它怎么把大象放进去,然后我以后就只要对它说:“把大象放冰箱”,就能完成工作。这两种方式有什么优劣呢?

首先复杂指令集在面对多种相似或者相近的需求时,只要更换部分的执行顺序就能完成工作,但

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值