zoukankan      html  css  js  c++  java
  • Unity-ECS(一)浅谈CPU缓存命中和Unity面向数据技术栈(DOTS)--笔记

    一,缓存类型

      概念:局部性。 

      时间局部性:当前用到的一个存储器位置,不久的将来会被用到。

      空间局部性:当前用到的一个存储器位置,附近的位置会被用到。 

    那么在CPU的层面,这两个局部性的特性就会被Cache执行,即将对拥有良好局部性的位置和指令进行缓存。来看一个具有时间局部性的例子:

    这是一个简单的求数组和的函数,这里的sum和i都具有时间局部性。那么它们就会被Cache管理,被CPU取值命中。

    再看一个空间局部性的例子,我们将这个一维数组改为二维。

    我们知道一个二维数组在内存里的排列是按行顺序排列的,大概是这样:
    ay[0,0], ay[0,1], ay[0,2],ay[1,0], ay[1,1], ay[1,2]……

    SumCache的写法会完全命中ay在内存里的排布,而SumMiss的写法则会Miss,二者的函数执行效率差距几十倍。

    所以ECS的架构,就是对缓存命中最大的提升,也是ECS性能倍增的原因。下一节稍微讲一下Unity日后主推的面对数据栈技术编程即DOTS。

  • 相关阅读:
    css笔记
    微信小程序布局基础
    selenium打开ie,Firefox,chrome浏览器
    20170818,new的永远是个类,不是方法
    Java多线程的创建和运行
    二叉树的创建和遍历
    Java泛型用于方法,类和接口
    hadoop大作业
    hive基本操作与应用
    理解MapReduce计算构架
  • 原文地址:https://www.cnblogs.com/Jaysonhome/p/11597908.html
Copyright © 2011-2022 走看看