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。

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/Jaysonhome/p/11597908.html
Copyright © 2011-2022 走看看