SIMD, Cache friendly
其实大多数做引擎的人都有考虑, 好多人都会说"SSE我很熟"
我去, 看看他们写的代码, 连数据结构内存都没对齐, 还好意思说"SSE我很熟".........另外, 尽量把相同类型的数据存放在连续的内存空间里, 并且进行顺序访问
如果有需要, 甚至可以使用prefetch指令把数据加载到Cache中去
吐槽一句: 喜欢用if-else的程序员都不是好程序员...最早认识到class性能会出问题的, 是从N3的代码里. floh有说为什么自己的引擎平台抽象层没有使用抽象类, 是因为虚函数对于主机平面的硬件架构性能很差...., 参考SIMD
带宽的考虑, 更多的是GPU端....现在又出来个TileBasedRendering, 都是因为硬件的变化带来算法/架构上的变化
总得来说, 硬件在不断升级换代, 我们头脑也需要升级换代才能跟得上潮流
面向对象虽然加快了开发效率,但是并不是对机器友好的