铭鸿体育资讯网

【别再被面向对象洗脑了:决定代码速度的是物理距离,而非算法】很多人写代码只盯着时

【别再被面向对象洗脑了:决定代码速度的是物理距离,而非算法】

很多人写代码只盯着时间复杂度,觉得O(N)的算法怎么跑都一样。但现代CPU不看数学公式,它从内存拿数据是按64字节的“缓存行”整车拉走的。

这就导致了一个反直觉的现象:内存布局决定性能。比如你要在100万个怪物里筛选活着的,传统的面向对象把每个怪物的姓名、坐标、血量和生死状态打包放在一起。CPU为了看一眼那1字节的“生死状态”,不得不把剩下63字节的无用信息也拉进缓存。

如果换个思路,把所有怪物的“生死状态”剥离出来排成一个单独的数组,CPU一车拉过去全是有效信息,运行速度能直接飙升30倍。

这就是数据导向设计(DoD)能干掉面向对象(OOP)的原因。面向对象顺应人类直觉,却违背了芯片的物理天性。当程序规模变大,决定性能的不再是你的算法逻辑,而是数据在芯片上的物理距离。想让代码变快,得先学会放下程序员的“对象”执念。

fzakaria.com/2026/06/01/every-byte-matters